簡體   English   中英

MySQL-我有兩個查詢,但是一個不起作用,一個可以。 請幫幫我?

[英]MySQL - I have two query but one doesn't work, and one does. Help me please?

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'].'');
}

“不喜歡”動作效果很好! 但是“喜歡”的卻不是。 幾乎是同一回事嗎?

有人能幫我嗎???

LIKE是一個關鍵字。 使用反引號:

UPDATE blog SET `like`=`like`+1 ...

通常,最好不要在關鍵字( LIKE,CASE,SELECT,WHERE等)之后命名列。

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

或者,如果您的id是整數,則可以在這種特殊情況下執行.... WHERE id=".(int)$_GET['id']

一個好的計划是檢查mysql_error()的返回值以獲得MySQL的實際錯誤(您可以通過簡單地回顯mysql_error()來檢查此錯誤)。

除此之外,您還真的想在調用header()之后拋出exit()以實際上終止腳本的執行,並且還想添加mysql_real_escape_string來轉義要傳遞到的GET參數。 MySQL的。 您不想使用用戶提供的未轉義或未過濾的數據。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM