2013-06-12 57 views
2

我試圖通過php腳本將4個值插入到mysql數據庫中,但是出現語法錯誤。爲什麼這個SQL語句不起作用

這是我的代碼行。

$insert = "INSERT INTO decks (id, card_id, box_num, order) VALUES 
('$id','$card_id','$box_num','$order')"; 

mysqli_query($db, $insert) or die("SQL Error 1: " . mysqli_error($db)); 

SQL錯誤1:您的SQL語法錯誤;請查看與您的MySQL服務器版本相對應的手冊,以便在第1行附近使用正確的語法值('2','baby','1','1')'

任何想法?

非常感謝。

+9

'訂單'是一個保留字,您需要用反引號將其轉義。順便說一句,你的代碼易受sql注入攻擊。閱讀[_prepared statements_](http://en.wikipedia.org/wiki/Prepared_statement)。 – Leri

+1

你的一些領域可能是整數,他們不需要單引號。 – Mansfield

+0

不要將數字包裝在引號中 –

回答

4

單詞order是一個關鍵字。你必須用反引號將它括起來:

INSERT INTO decks (id, card_id, box_num, `order`) ... 
6

您必須使用反引號周圍順序:

`order` 

或者將其更改爲別的東西。

1

ORDER是SQL中的一個保留字,使用反引號。

+0

只需在mysql中反引號。 –

+0

哎呀,對不起,修正。謝謝 ! –

相關問題