更新:已解决,谢谢大家的帮助!
所以我想要一个 PHP 函数,它查询数据库中所有类型为“Check-out”的遭遇,然后使用最近一次遭遇的日期更新people表字段lastCO 。
但是在我的 UPDATE 函数的 while 循环中似乎以某种方式出错。你可以说我放了一个'echo'语句,这样我就可以看到循环的条件是否得到满足,事实上,当我查看源代码时,它会回显一次。
但是当我注释掉我的第二个(UPDATE)SQL 语句时,while 循环似乎可以正确迭代(并且我的 echo 语句会打印很多次)。
public static function getLastCO() {
$conn = new PDO( DB, DBU, DBP );
$sql = "SELECT UNIX_TIMESTAMP(encPastDate) AS encPastDate, encPastText,encPastPTRef
FROM enctsPast WHERE encPastText = 'Check-out'";
$st = $conn->prepare( $sql );
$st->execute();
$row = $st->fetch();
//trouble seems to start here!!!!
while ( $row = $st->fetch() ) {
$person = new Person( $row );
if ($person->encPastDate != null){
echo '123abc456';
$sql1 = "UPDATE persons SET lastCO =
(CASE WHEN lastCO < '$person->encPastDate' THEN '$person->encPastDate'
WHEN lastCO = null THEN '$person->encPastDate' END)";
$st = $conn->prepare( $sql1 );
$st->execute();
}
}
$conn = null;
}
那么我的 UPDATE 语句和执行有什么问题呢?问题是我在同一个“连接”上连接到两个不同的表的方式吗?还有什么?
我只是在调试时遇到了麻烦,而我可怜的回声尝试并没有让我走远:/
-
在此先感谢您的帮助!