[英]What is wrong with my SQL/PHP syntax here?
因此,我在網站上建立了一個下載數據庫,該數據庫使我能夠跟蹤下載次數,並且我正嘗試為我和我的同胞建立一個前端,以將新下載內容插入數據庫。 我主要使用PHP設置前端。
設置頁面調度的方式消除了表單發布的可能性,因此,我讓JS序列化數據並重新加載頁面,然后在PHP中反序列化數據,將值粘貼到mysql查詢中,然后嘗試運行它。
這是我的SQL代碼在PHP內部的樣子:
$sql = "INSERT INTO dl (id, file, desc) VALUES ('$idd', '$file', '$desc')";
變成這個字符串:
INSERT INTO dl (id, file, desc) VALUES ('a56', 'test.zip', 'cake')
但是當頁面嘗試運行它時,出現此錯誤:
您的SQL語法有誤; 檢查與您的MySQL服務器版本相對應的手冊,以在第1行的'desc)VALUES('a56','test.zip','cake')'附近使用正確的語法
而且奇怪的是,運行查詢的代碼行不在第1行,而在第28行。
任何幫助表示贊賞:)
desc
是MySQL中的保留關鍵字 。
推薦的解決方法是使用反引號 。 從MySQL手冊 :
如果標識符包含特殊字符或為保留字,則在引用標識符時必須將其引用。
如果無法重命名表或列,則將有問題的標識符包裝在反引號(`)中:
$sql = "INSERT INTO dl (id, `file`, `desc`) VALUES ('$idd', '$file', '$desc')";
也看一下這個問題: 何時在MySQL中使用單引號,雙引號和反引號
desc
是SQL中的保留字。
它(與ASC
一起)用於確定結果的排序順序。
請更改desc的列名,該列名由MYSQL保留。 有關更多詳細信息,請參見MYSQL保留字上的保留字列表。
請嘗試這個。
$sql = "INSERT INTO dl (`id`, `file`, `desc`) VALUES ('".$idd."', '".$file."', '".$desc."')";
希望這對您有用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.