MySQL - 我有两个查询但一个不起作用,一个查询.请帮帮我?

Fre*_*oux 2 php mysql

if ($_GET['action'] == "like")
{
mysql_query("UPDATE blog SET like=like+1 WHERE id=".$_GET['id']."");
header('Location: blog.php?id='.$_GET['id'].'');
}
else if ($_GET['action'] == "dislike")
{
mysql_query("UPDATE blog SET dislike = dislike+1 WHERE id = ".$_GET['id']."");
header('Location: blog.php?id='.$_GET['id'].'');
}
Run Code Online (Sandbox Code Playgroud)

"不喜欢"行动效果很好!但"喜欢"却没有.它接近是一回事吗?

有人能帮我吗???

a1e*_*x07 6

LIKE是一个关键字.使用反引号:

UPDATE blog SET `like`=`like`+1 ...
Run Code Online (Sandbox Code Playgroud)

一般来说,最好不要在关键字(LIKE,CASE,SELECT,WHERE等)之后命名列.

mysql_query("UPDATE blog SET `like`=`like`+1 WHERE id='".
       mysql_real_escape_string($_GET['id'])."'");
Run Code Online (Sandbox Code Playgroud)

或者如果你的id是整数,你可以在这种特殊情况下做 .... WHERE id=".(int)$_GET['id']