0

您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的 'like = '0 +1' WHERE wall_id = '20'' 附近使用正确的语法

$sql = mysql_query("UPDATE wall SET like = '$nelike'  WHERE wall_id = '$id' " );   

if($sql)
    echo "Success;
else
    echo "something wrong<br/>" . mysql_error();

为什么我收到此错误消息?

4

3 回答 3

2

您的列like需要封装在反引号中,因为like 它也是 MySQL 关键字。

$sql = mysql_query("UPDATE wall SET `like` = '$nelike'  WHERE wall_id = '$id' " );

您还希望将反引号应用于名称中包含空格的列。

此外,逃避您的数据也不是一个坏主意(如果您不知道)

$sql = mysql_query("UPDATE wall 
SET `like` = '" . mysql_real_escape_string($nelike) . "'  
WHERE wall_id = '" . mysql_real_escape_string($id) . "'" );
于 2012-05-25T02:56:31.260 回答
1

LIKE是一个 SQL 关键字。如果要将其用作字段名称,则需要将其放在反引号中:

UPDATE wall SET `like` = '$nelike'  WHERE wall_id = '$id'
于 2012-05-25T02:56:42.240 回答
0

错误是您在 mysql 中使用了保留字并且您没有使用反引号对其进行转义。

$sql = mysql_query("UPDATE wall SET like = '$nelike'  WHERE wall_id = '$id' " ); 

应该写成

$sql = mysql_query("UPDATE wall SET `like` = '$nelike'  WHERE wall_id = '$id' ");
于 2012-05-25T03:09:34.700 回答