无效的sql语句 - 撇号?

时间:2017-02-12 18:43:37

标签: php mysql sql mariadb

我编写了一些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)

1 个答案:

答案 0 :(得分:1)

评论太长了。编写代码的正确方法是:

INSERT INTO table1(article, typ)
    VALUES ('test', 'test2')

所有标识符(表名和列名)都是有效名称。他们不需要逃脱。因此,不需要反引号。

你需要引用字符串的单引号,而不是反引号。如果反引号是名称的一部分,你可以这样做:

INSERT INTO table1(article, typ)
    VALUES ('`test`', '`test2`');

但这似乎不太可能。