2017-08-30 106 views
-1

我得到的語法錯誤,一個非常簡單的SQL查詢我試圖做沒有已知的錯誤:SQL語法錯誤在查詢

INSERT INTO history (character, type, amount, extra) 
VALUES('$character', '$type', '$amount', '$extra') 

這裏的表設置方式:

SQL table

完整的錯誤它給了我如下:

你在你的SQL語法錯誤;檢查與您的MariaDB服務器版本相對應的手冊,以便在第1行的'character,type,amount,extra'附近使用正確的語法)VALUES('Ellie','Gift','-200','to Rick')'

我已經檢查並檢查了常見錯誤,例如表名,拼寫錯誤,列順序等,但我對於它仍在檢測的內容毫無頭緒,希望你們中的一個能幫助我...

+0

數量是整數並且使用撇號。 INSERT INTO歷史記錄('character','type','amount','extra') VALUES('$ character','$ type',$ amount,'$ extra') –

+0

您'amount'column是'INTEGER '這就是爲什麼它拒絕'-ve'值的原因。 將其更改爲'unsigned',然後它將工作。還要在'character'周圍添加反勾號。 –

+0

在此處註釋中,stackoverflow不顯示反標記/撇號。 –

回答

2

character是mysql中的reserved keyword。重命名該列或使用反引號來轉義該列。

INSERT INTO history (`character`, type, amount, extra) 
VALUES('$character', '$type', $amount, '$extra') 
+0

實際上,只有'CHARACTER'被保留,而不是'TYPE',所以只有前者需要打勾。我之前做過一個編輯以添加「保留」,因此您可能需要分別重新調整;-) –

+0

太棒了,我只是簡單地將字段重命名爲characterName而不是字符,並且它可以工作!非常感謝你! – iEllya