2014-04-30 32 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>"; 
    }