Экономия времени () в 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

Если у вас есть право изменять таблицу, измените имя столбца, которого нет в списке зарезервированных ключевых слов, чтобы эта ошибка не повторилась в будущем.

Другие вопросы по тегам