更新SQL数据库中的BIT字段时出错(使用PHP PDO驱动程序)

时间:2012-03-28 13:36:21

标签: php mysql pdo bit

我有以下代码:

$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''附近使用正确的语法

我看不到任何语法错误,那么问题是什么?

1 个答案:

答案 0 :(得分:1)

READ是MySQL中的reserved word

您需要引用它才能将其用作列名:

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

这就是为什么在每个查询中引用一切,以避免这样的问题。请记住,引用对象名称(表,列等)必须使用反引号完成:`