我有以下代码:
$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服务器版本对应的手册,以便在第2行'read ='1'WHERE id = '25''附近使用正确的语法
我看不到任何语法错误,那么问题是什么?
答案 0 :(得分:1)
READ
是MySQL中的reserved word。
您需要引用它才能将其用作列名:
$SQL = "UPDATE jobs
SET `read` = '1'
WHERE id = '$job_id'";
这就是为什么在每个查询中引用一切,以避免这样的问题。请记住,引用对象名称(表,列等)必须使用反引号完成:`