Ошибка обновления поля BIT в базе данных SQL (с использованием драйвера PHP PDO) - PullRequest
0 голосов
/ 28 марта 2012

У меня есть следующий код:

$SQL = "UPDATE jobs
        SET read = '1'
        WHERE id = '$job_id'";

$STH = $DBH->prepare($SQL);
$STH->execute();

read - это поле в таблице с типом данных BIT. Текущие данные внутри этого поля 0 (false), и я пытаюсь изменить их на 1 (true). Однако я получаю эту ошибку:

Сообщение: SQLSTATE [42000]: синтаксическая ошибка или нарушение прав доступа: 1064 В синтаксисе SQL есть ошибка; проверьте руководство, соответствующее вашей версии сервера MySQL, на предмет правильного синтаксиса для использования рядом с 'read =' 1 'WHERE id =' 25 '' в строке 2

Я не вижу синтаксических ошибок, так в чем же проблема?

1 Ответ

1 голос
/ 28 марта 2012

READ - это зарезервированное слово в MySQL.

Вам нужно будет заключить его в кавычки, чтобы использовать в качестве имени столбца:

$SQL = "UPDATE jobs
        SET `read` = '1'
        WHERE id = '$job_id'";

ЭтоВот почему все запросы в каждом запросе, чтобы избежать подобных проблем.Помните, что цитирование имен объектов (таблиц, столбцов и т. Д.) Должно выполняться с помощью обратных кавычек : `

...