MySQL问题与UPDATE数字

时间:2011-03-28 15:48:54

标签: php mysql

我正在尝试使用PHP进行非常简单的UPDATE,如下所示:

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

$lk是从字段like获取的值,默认为0$cid是来自id的{​​{1}}字段的值。

我收到此错误:

  

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

这里有什么问题?

8 个答案:

答案 0 :(得分:5)

就像是一个保留字。你需要用反向标记来包围它

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

答案 1 :(得分:3)

like是保留关键字。有关mysql中保留关键字的列表,请参阅here如果您将like - 列用反引号(`)括起来,错误就会消失。

答案 2 :(得分:2)

使用此(在列名称周围添加刻度线(`)):

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

更好的是,不要将reserved words用作表/列名称。

答案 3 :(得分:1)

like是一个MySQL关键字。最有可能是这种情况。尝试转义字段名称

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

或者,如果您仍然遇到相同的错误,请将字段名称更改为其他内容

答案 4 :(得分:0)

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

答案 5 :(得分:0)

因为LIKE是一个关键字。使用反叛就像。

答案 6 :(得分:0)

就像是一个mysql reserved word

您必须将此列名称放在后引号中

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

答案 7 :(得分:-2)

提示位于错误消息中,靠近WHERE id = '45“

如果用双引号替换双引号,则可能会运行此查询。

-gz

我的不好,我错过了保留字前面的领先单曲,并且正在用非等宽字体观看,所以最后两个单曲看起来像一个双。 DUR。