我编写了一些PHP脚本,我编写了这个sql查询(例如):
INSERT INTO \`table1\` (\`article\`, \`typ\`)
VALUES(\`test\`, \`test2\`)
此查询有效。
我的问题是,如果我写这样的表名和列'table1' 我收到一个SQL错误: SQL错误(1064):SQL语法中有错误;检查与MariaDB服务器版本对应的手册,以便在''article','typ'附近使用正确的语法。)VALUES('test','test1')'
有没有人知道为什么我必须写这个`table1`以及为什么它不能正常工作 - > '?
Server-Typ:MariaDB
服务器版本:10.1.9-MariaDB - mariadb.org二进制分发
Server-Zeichensatz:UTF-8 Unicode(utf8)
答案 0 :(得分:1)
评论太长了。编写代码的正确方法是:
INSERT INTO table1(article, typ)
VALUES ('test', 'test2')
所有标识符(表名和列名)都是有效名称。他们不需要逃脱。因此,不需要反引号。
你需要引用字符串的单引号,而不是反引号。如果反引号是名称的一部分,你可以这样做:
INSERT INTO table1(article, typ)
VALUES ('`test`', '`test2`');
但这似乎不太可能。