更新: 解決しました。みんなの助けに感謝します!
したがって、「チェックアウト」タイプのすべての出会いについてデータベースにクエリを実行し、最新の出会いの日付でpersonテーブルフィールドlastCOを更新する PHP 関数が必要です。
しかし、私の UPDATE 関数の while ループでは、どういうわけかエラーが発生するようです。ループの条件が満たされているかどうかを確認できるように、「echo」ステートメントを挿入したことがわかります。実際、ソースを見ると、一度エコーしました。
しかし、2 番目の (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 ステートメントと実行の何が問題なのですか? 問題は、同じ「接続」で 2 つの異なるテーブルに接続する方法ですか? 他の何か?
私はこれをデバッグするのに問題があります.
-
よろしくお願いします。