更新期间Mysql语法错误但代码看起来很好

时间:2011-09-20 14:57:48

标签: mysql syntax

我有一个Mysql更新的奇怪问题,我不确定是什么导致它。我怀疑表本身有问题,但导致错误的字段似乎与表中的其他字段定义相同。我可以在SQL选项卡上以及php代码中重新创建phpMyAdmin中的错误。我完全难过了。 表中的字段定义如下:

bnumber is INT length=11
bname is VARCHAR length=60 Collation=latin1_swedish_ci
twittername is VARCHAR length=15 Collation=latin1_swedish_ci
desc is VARCHAR length=60 Collation=latin1_swedish_ci

此更新声明有效:

update tbl1 set bname='myName', twittername='myTweet' where bnumber=1;

这个给了我错误:

update tbl1 set bname='myName', twittername='myTweet', desc='test' where bnumber=1;

我得到的错误是:

#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 'desc='Main' where bnumber=1' at line 1.

从表格中选择或插入表格似乎没有任何问题。只有更新才给我错误。

我感谢任何帮助。

谢谢!

4 个答案:

答案 0 :(得分:3)

desc是MySQL中的保留字。你必须用反引号引用它。

答案 1 :(得分:2)

desc是一个关键字。用反引号逃脱它。

update tbl1 
    set bname='myName', 
        twittername='myTweet', 
        `desc`='test' 
    where bnumber=1;

答案 2 :(得分:1)

desc是mysql中的保留字

http://dev.mysql.com/doc/refman/5.0/en/reserved-words.html

更新了你的sql如下,它可以正常工作;

update tbl1 set bname='myName', twittername='myTweet', `desc`='test'
where bnumber=1;

答案 3 :(得分:0)

您无法使用desc作为字段名称。 将fieldname更改为desc1并尝试。

desc适用于oder by name desc