2011-11-15 84 views
3

我有一個包含三列(鍵,id,loglevel)的SQL表。鍵列被設置爲主鍵,並自動遞增。使用主鍵進行SQL查詢

想象一下:

key id loglevel 
1  223  5 
2  445  8 

現在我想通過選擇行綜合類更新表對應於「鍵」的一個特定的值。

我現在用的線:

mysql_query("UPDATE Logs SET loglevel = 4 WHERE key = 2;"); 

然而,這是行不通的。

當我將其更改爲

mysql_query("UPDATE Logs SET loglevel = 4 WHERE id = 445;"); 

它工作正常。但是,我想基於「key」而不是「id」進行更新。

任何想法我做錯了什麼?

+0

是MySQL產生錯誤信息?如果是這樣,那是什麼? – toon81

回答

6

在MySQL的密鑰是reserved word,必須引用。

"UPDATE Logs SET loglevel = 4 WHERE `key` = 2" 

我還強烈建議你看看mysql_error值當你的查詢失敗,因爲這可能給你你需要這個解決自己的提示。

錯誤代碼:1064.您的SQL語法錯誤;檢查對應於你的MySQL服務器版本在1號線

+0

嗯...沒有錯誤信息出現,但我改變了名稱從鍵,所以謝謝你的提示 – user1028882

1

使用附近的「關鍵」正確的語法手冊「鑰匙」是MySQL中的保留字(見http://dev.mysql.com/doc/refman/5.5/en/reserved-words.html)。我建議使用除'key'之外的單詞作爲主鍵,因爲稍後可能會產生一個名爲'key'的列,另一個名爲'id'的常見約定是使用'id'作爲主鍵。 ..