2011-03-28 68 views
2

我试图做一个非常简单的更新与PHP,像这样:MySQL的问题与更新号

$nlk = $lk + "1"; 
mysql_query("UPDATE posts SET like = '".$nlk."' WHERE id = '".$cid."'") or die(mysql_error()); 

$lk是从外地like,这是默认0得到的值。 $cid是来自id字段的值,该字段位于auto_increment

我得到这个错误:

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 'like = '1' WHERE id = '45'' at line 1

什么是这里的问题?

回答

2

使用此(添加蜱(`)周围的列名):

mysql_query("UPDATE posts SET `like` = '".$nlk."' WHERE id = '".$cid."'") or die(mysql_error()); 

更重要的是,不要使用reserved words如表/列名。

0

像是SQL中的关键字。这可能会导致你的错误。更改您的列名称,或者至少在“喜欢”前面添加表格名称。

3

like是保留关键字。有关mysql中保留关键字的列表,请参见here如果您将likeColumn反引号(`),那么错误应该消失。

5

像是一个保留字。您需要用back-ticks围绕它

mysql_query("UPDATE posts SET `like` = '".$nlk."' WHERE id = '".$cid."'") or die(mysql_error()); 
1

like是一个MySQL关键字。这很可能是这种情况。可尝试逃离现场名称

mysql_query("UPDATE posts SET `like` = '".$nlk."' WHERE id = '".$cid."'") or die(mysql_error()); 

或者,如果你仍然得到同样的错误,字段名称更改为其他

-2

的提示是在错误消息中,近WHERE ID = '45 “

此查询,如果有一个代替双引号将可能运行。

-gz

我的坏,我错过了领先的单在保留字的前面,并且以非等宽字体进行查看,因此最后的两个单曲看起来像是双重字体。杜尔。

+1

这是* *在单引号。 – jackbot 2011-03-28 15:53:24

0

因为LIKE是关键字。使用反引号。

0

喜欢的是一个MySQL reserved word

你必须回来把这个列名引用

mysql_query("UPDATE posts SET `like` = '".$nlk."' WHERE id = '".$cid."'") or die(mysql_error());