这个SQL UPDATE查询有什么问题?

时间:2010-06-18 01:51:25

标签: php mysql

我不会问我是否不确定我100%不知道为什么这不起作用,所以,在PHP中我只是想尝试更新MySQL数据库中的值:

该字段即时更新   - 姓名:读   - 类型:tinyint   - 长度:1

这是PHP代码:

  

do_SQL(“UPDATE消息SET read = 1   WHERE id ='“。$ id。”'“);

do_SQL函数适用于其他所有内容,因此该语句出错了。我已经尝试将1放入'1'但它仍然没有工作 错误是:

  

您的SQL语法有错误;   检查对应的手册   您的MySQL服务器版本   在'read = 1 WHERE附近使用正确的语法   第1行的id ='1''

感谢阅读!

5 个答案:

答案 0 :(得分:3)

read是MySQL中的关键字,因此如果不引用它(使用反引号)就不能使用它:

do_SQL("UPDATE messages SET `read`=1 WHERE id='".$id."'");

答案 1 :(得分:3)

read可能是MySQL中的保留字。

是的MySQL Reserved Words

下次在创建一个名称可能已被数据库系统使用的列之前检查该列表。

答案 2 :(得分:1)

如果id是数字,请尝试删除引号aka:

do_SQL("UPDATE messages SET `read` = 1 WHERE id = ".$id);

答案 3 :(得分:1)

不要引用$ id。让PHP在字符串中进行替换。

 do_SQL("UPDATE messages SET read=1 WHERE id=$id.");

答案 4 :(得分:0)

没有转义字符。

do_SQL('UPDATE messages SET read=1 WHERE id=\''.$id.'\'');