我想使用更新查詢來更改數據庫中保存的值,我嘗試存儲的新值都保存在php變量中。我不確定我做錯了什麼。MYSQL更新查詢php
的mysql_query( 「UPDATE SET用戶狀態 = '滿' WHERE USER_ID = '$ USER_ID'」)或死亡(mysql_error());
這裏是錯誤消息
重複條目 '91317691' 的關鍵1
在此先感謝
我想使用更新查詢來更改數據庫中保存的值,我嘗試存儲的新值都保存在php變量中。我不確定我做錯了什麼。MYSQL更新查詢php
的mysql_query( 「UPDATE SET用戶狀態 = '滿' WHERE USER_ID = '$ USER_ID'」)或死亡(mysql_error());
這裏是錯誤消息
重複條目 '91317691' 的關鍵1
在此先感謝
我認爲你需要改變
.. ''+ $ user_id +「'」...
把你的單雙號後加上你的$ user_id,然後加上最後的結尾「'」(雙引號,單引號,雙引號)
此外,如果你沒有控制$ user_id變量,你可能會打開SQL注入攻擊
它看起來像你的user_id字段是一個整數。把「」圍繞這將打破東西
嘗試不帶引號
mysql_query("UPDATE user SET status='full' WHERE user_id = $user_id")or die(mysql_error());
這意味着有獨特的密鑰的重複。假設您在(user_id, status)
和status
上使用的是唯一enum
,如果是這種情況,您可能已經有與您嘗試更新的條目匹配的條目。
| user_id | status |
| 1234 | full |
| 1234 | none |
如果不是這種情況,發佈架構會有所幫助。
道歉,我意識到問題是在我的PHP腳本其他地方引起的,但我已經解決了它。
感謝您的指導
發生了什麼或沒有發生什麼?您是否100%確定存在具有該ID的用戶記錄? '$ user_id'包含什麼? – 2010-04-27 18:30:16
您需要更具體地瞭解發生的錯誤類型。也許發佈mysql_error()的文本。 – Chaim 2010-04-27 19:03:33
請同時添加'SHOW CREATE TABLE user'的輸出。您是否確定您發佈的查詢導致此「重複條目」錯誤? – VolkerK 2010-04-27 19:24:04