SQL语法错误在查询

问题描述:

我得到的语法错误,一个非常简单的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

在此处注释中,*不显示反标记/撇号。 –

character是mysql中的reserved keyword。重命名该列或使用反引号来转义该列。

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

实际上,只有'CHARACTER'被保留,而不是'TYPE',所以只有前者需要打勾。我之前做过一个编辑以添加“保留”,因此您可能需要分别重新调整;-) –

+0

太棒了,我只是简单地将字段重命名为characterName而不是字符,并且它可以工作!非常感谢你! – iEllya