我正在尝试使用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行
这里有什么问题?
答案 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。