2013-12-15 87 views
0

我得到的錯誤是PHP MySQL錯誤,抱怨INSERT語句

錯誤編號:0 - MySQL錯誤您的SQL語法錯誤;檢查 對應於您的MySQL服務器版本的權利 語法使用近 'DESC)VALUES(?,?,?,?,?,?,?)' 在1號線

Query: 
#0 {main} 
手冊

的代碼如下

$stmt = $mysqli->prepare("INSERT INTO events (start_date, end_date, duration, typedesc, inorout, amount, desc) VALUES(?,?,?,?,?,?,?)"); 

我不能爲我的生活,看到的錯誤。在另一個腳本中,我幾乎可以看到完全相同的代碼。我已檢查,雙重檢查,並三重檢查表名稱和列名稱。一切看起來都對我好。

現在想從哪裏開始?

回答

4

descMySQL一個​​,你需要用它在反引號。

就像這個...

$stmt = $mysqli->prepare("INSERT INTO `events` (`start_date`, `end_date`, `duration`, `typedesc`, `inorout`, `amount`, `desc`) VALUES(?,?,?,?,?,?,?)"); 
+1

只需在每個列名稱中添加反引號,並且您在安全方面。 – HerrSerker

+0

@HerrSerker,是的,當你評論時,我正在那樣做。謝謝。 –

+1

是的,就是這樣!哇,謝謝你們。我會在9分鐘內接受它。 –

1

DESC是用來afrer ORDER BY fieldname進行降序排序預留MySQL的關鍵字。

試試這個:

INSERT INTO事件(`start_date`,`end_date`,`duration`,`typedesc`,`inorout`,`amount`,`desc`)VALUES(?,? ,?,?,?,?,?)

+1

@Shankar Damodaran,我在回覆你的帖子時寫下了......對不起! –

+0

更有趣的是,desc是我的簡寫「描述」,完全忘記了它是順序遞減的簡寫。有時候,我們的大腦根據我們對手頭問題的思考來阻止問題。 –