2017-04-25 92 views
-1

當我通過PHP發送電子郵件時,我希望它更新數據庫,說它已發送郵件。但下面的代碼是我可以在網上找到應該工作,但它不,我肯定有一個連接到數據庫。SQL UPDATE不起作用?

$sql = "UPDATE Mail SET Sent='1' WHERE key='$key'"; 

而且我沒有收到任何錯誤,頁面上的所有內容都正確運行。任何幫助?

+1

你應該包括你在你的問題已經嘗試過的解決方案。你檢查了/var/log/httpd/*.log嗎?你輸出了診斷信息嗎?你是否嘗試從命令行工具運行SQL?請閱讀[我如何問一個好問題?](https://stackoverflow.com/help/how-to-ask) –

+0

發送了一個布爾?如果是這樣,請嘗試將單引號設置爲1 w/o。當你爲$ key賦一個有效值時,你可以運行sql嗎? – KornMuffin

回答

1

這是因爲「key」是MySQL中的保留字。還有一些其他的你可以找到here

0

在SQL中,「鑰匙」是一個關鍵詞,也許你可以:

$sql = "UPDATE Mail SET Sent='1' WHERE `key`='$key'"; 
+0

KEY實際上是一個保留字詞..見https://dev.mysql.com/doc/refman/5.5/en/keywords.html @ Derbyshire10建議將數據庫中的'key'列重命名爲'keyid' –