2011-09-20 38 views
0

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

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. 

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

我很感激任何帮助。

谢谢!

+1

尝试在'desc'附近反引号,你知道'desc'是'describe'的关键字和同义词,对不对? –

+0

desc是一个保留字。你需要逃避它。 –

+0

@injekt:它也不是DESCENDING的同义词吗? – Mr47

回答

2

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

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

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

+0

嗨,不,我不知道desc是一个关键词。谢谢! – James

0

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

递减为oder by name desc

+0

您可以使用DESC作为字段名称,只需在使用时转义即可。 – CristiC

相关问题