2011-03-28 63 views
2

我試圖做一個非常簡單的更新與PHP,像這樣:MySQL的問題與更新號

$nlk = $lk + "1"; 
mysql_query("UPDATE posts SET like = '".$nlk."' WHERE id = '".$cid."'") or die(mysql_error()); 

$lk是從外地like,這是默認0得到的值。 $cid是來自id字段的值,該字段位於auto_increment

我得到這個錯誤:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'like = '1' WHERE id = '45'' at line 1

什麼是這裏的問題?

回答

2

使用此(添加蜱(`)周圍的列名):

mysql_query("UPDATE posts SET `like` = '".$nlk."' WHERE id = '".$cid."'") or die(mysql_error()); 

更重要的是,不要使用reserved words如表/列名。

0

像是SQL中的關鍵字。這可能會導致你的錯誤。更改您的列名稱,或者至少在「喜歡」前面添加表格名稱。

3

like是保留關鍵字。有關mysql中保留關鍵字的列表,請參見here如果您將likeColumn反引號(`),那麼錯誤應該消失。

5

像是一個保留字。您需要用back-ticks圍繞它

mysql_query("UPDATE posts SET `like` = '".$nlk."' WHERE id = '".$cid."'") or die(mysql_error()); 
1

like是一個MySQL關鍵字。這很可能是這種情況。可嘗試逃離現場名稱

mysql_query("UPDATE posts SET `like` = '".$nlk."' WHERE id = '".$cid."'") or die(mysql_error()); 

或者,如果你仍然得到同樣的錯誤,字段名稱更改爲其他

-2

的提示是在錯誤消息中,近WHERE ID = '45 「

此查詢,如果有一個代替雙引號將可能運行。

-gz

我的壞,我錯過了領先的單在保留字的前面,並且以非等寬字體進行查看,因此最後的兩個單曲看起來像是雙重字體。杜爾。

+1

這是* *在單引號。 – jackbot 2011-03-28 15:53:24

0

因爲LIKE是關鍵字。使用反引號。

0

喜歡的是一個MySQL reserved word

你必須回來把這個列名引用

mysql_query("UPDATE posts SET `like` = '".$nlk."' WHERE id = '".$cid."'") or die(mysql_error());