簡體   English   中英

我的SQL / PHP語法在這里有什么問題?

[英]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保留字上的保留字列表。

http://dev.mysql.com/doc/refman/5.5/en/reserved-words.html

請嘗試這個。

$sql  = "INSERT INTO dl (`id`, `file`, `desc`) VALUES ('".$idd."', '".$file."', '".$desc."')";

希望這對您有用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM