MySQL错误 - "您的SQL语法中有错误"

axi*_*mer 4 php mysql syntax syntax-error mysql-error-1064

我收到的错误消息:

您的SQL语法有错误; 检查与MySQL服务器版本对应的手册,以便在''word','group','selfnote'附近使用正确的语法.)第1行的VALUES('item','a','note to self')'

PHP代码是:

$toq="INSERT INTO articles ('word','group','selfnote') 
VALUES ('$ttle','$wrdr','$snote')";
Run Code Online (Sandbox Code Playgroud)

我试图找到solutins,但它们似乎没有像回声那样起作用:

INSERT INTO articles ('word','group','selfnote') 
VALUES ('item','a','note to self')
Run Code Online (Sandbox Code Playgroud)

这对我来说很好看.问题是什么?

Mar*_*c B 8

您已在字段名称上加上引号.这迫使MySQL将它们视为字符串,而不是字段名称 - 并且您不能插入字符串.

INSERT INTO articles (word, group, selfnote) VALUES (....);
Run Code Online (Sandbox Code Playgroud)

是正确的语法.字段名称上允许的唯一引用类型是使用反引号来转义保留字段,例如

INSERT INTO articles (table, int, varchar)  ...
Run Code Online (Sandbox Code Playgroud)

因使用3个保留字而失败,但添加了反引号

INSERT INTO articles (`table`, `int`, `varchar`)  ...
Run Code Online (Sandbox Code Playgroud)

使它们成为字段名称.


jue*_*n d 8

使用反引号`而不是引号'来转义名称.引号是字符串分隔符.

$toq="INSERT INTO articles (`word`,`group`, `selfnote`) VALUES ('$ttle','$wrdr','$snote')";
Run Code Online (Sandbox Code Playgroud)