Экономия времени () в Mysql
Я использую следующий код, чтобы сэкономить время. Я попытался обновить тип столбца на 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"}
1 ответ
Решение
update
является зарезервированным ключевым словом и является именем вашей колонки. Чтобы избежать синтаксической ошибки, имя столбца следует экранировать с помощью обратных кавычек. Ex,
UPDATE users SET `update` = :update WHERE id = :clientId
Если у вас есть право изменять таблицу, измените имя столбца, которого нет в списке зарезервированных ключевых слов, чтобы эта ошибка не повторилась в будущем.