SQL语法错误在查询
我得到的语法错误,一个非常简单的SQL查询我试图做没有已知的错误:SQL语法错误在查询
INSERT INTO history (character, type, amount, extra)
VALUES('$character', '$type', '$amount', '$extra')
这里的表设置方式:
完整的错误它给了我如下:
你在你的SQL语法错误;检查与您的MariaDB服务器版本相对应的手册,以便在第1行的'character,type,amount,extra'附近使用正确的语法)VALUES('Ellie','Gift','-200','to Rick')'
我已经检查并检查了常见错误,例如表名,拼写错误,列顺序等,但我对于它仍在检测的内容毫无头绪,希望你们中的一个能帮助我...
character
是mysql中的reserved keyword。重命名该列或使用反引号来转义该列。
INSERT INTO history (`character`, type, amount, extra)
VALUES('$character', '$type', $amount, '$extra')
实际上,只有'CHARACTER'被保留,而不是'TYPE',所以只有前者需要打勾。我之前做过一个编辑以添加“保留”,因此您可能需要分别重新调整;-) –
太棒了,我只是简单地将字段重命名为characterName而不是字符,并且它可以工作!非常感谢你! – iEllya
数量是整数并且使用撇号。 INSERT INTO历史记录('character','type','amount','extra') VALUES('$ character','$ type',$ amount,'$ extra') –
您'amount'column是'INTEGER '这就是为什么它拒绝'-ve'值的原因。 将其更改为'unsigned',然后它将工作。还要在'character'周围添加反勾号。 –
在此处注释中,stackoverflow不显示反标记/撇号。 –