2014-04-30 34 views
0

嗨,我有一個讀計數器,但我總是得到一個MySQL錯誤:更新集獲得MySQL錯誤

MySQL的錯誤:你在你的SQL語法錯誤;檢查對應於你的MySQL服務器版本使用附近的「正確的語法手冊」讀「)VALUES(」 2「)WHERE ID =‘20’」在1號線

$reads = $row['reads']+1; 
    $newsid = $row['id'];        

    if(!$query = $db->query("UPDATE cmsss_news_articles SET reads = '$reads' WHERE id = '$newsid'")) { 
    echo "<center><b>Error, cant update row</b></center>"; 
    } 

能否請你幫我錯誤在哪裏?

回答

5

readsreserved word in MySQL。用反引號逃脫它。

UPDATE cmsss_news_articles 
SET `reads` = '$reads' 
... 
+0

這是完美的:) –

+0

+1的鏈接。 –

0

您還可以放開增量變量以獲得一些性能和簡單性。

$newsid = $row['id'];        

    if(!$query = $db->query("UPDATE cmsss_news_articles SET `reads` = `reads` + 1 WHERE id = '$newsid'")) { 
     echo "<center><b>Error, cant update row</b></center>"; 
    } 
+1

儘管是一個正確的答案,但只有代碼的答案對於學習__why__來說並不是很好。你應該解釋爲什麼添加反引起重要作用。 – naththedeveloper

+0

對不起,仍在編輯,但你的權利! – sidneydobber

0

閱讀是MySQL中的反向關鍵詞,因此將其用於反引號。

試試這個:

if(!$query = $db->query("UPDATE cmsss_news_articles SET `reads` = '$reads' WHERE id = '$newsid'")) {            ^^ 
    echo "<center><b>Error, cant update row</b></center>"; 
    }