我有一个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.
从表格中选择或插入表格似乎没有任何问题。只有更新才给我错误。
我感谢任何帮助。
谢谢!
答案 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