-1

時間を節約するために次のコードを使用しています。列の型を DATETIME と TIMESTAMP に更新しようとしました

$statement = $conn->prepare('UPDATE users SET update = :update WHERE id = :clientId');
                $statement->bindParam(':clientId', $clientId, PDO::PARAM_STR);
                $statement->bindParam(':update', time(), PDO::PARAM_STR);
                $statement->execute();


{"error":"SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'update = '1367692928' WHERE id = 'I9pm90r-b4'' at line 1"}
4

1 に答える 1

0

updateは予約済みのキーワードで、たまたま列の名前になっています。構文エラーを回避するために、バックティックを使用して列名をエスケープする必要があります。元、

UPDATE users SET `update` = :update WHERE id = :clientId

テーブルを変更する権限がある場合は、予約済みキーワード リストにない列名を変更して、同じエラーが再発しないようにします。

于 2013-05-04T18:44:43.427 に答える