sql 语句无效 - 撇号?

invalid sql statement - apostrophes?

我编写了一些 PHP 脚本并写了这个 sql 查询(例如):

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

此查询有效。

我的问题是,如果我这样写表名和列 'table1' 我收到 sql 错误: SQL 错误(1064):您的 SQL 语法有误;查看与您的 MariaDB 服务器版本对应的手册,了解在 ''article', 'typ') VALUES('test', 'test1')'

附近使用的正确语法

有人知道为什么我必须像这样写 `table1` 以及为什么它不能正常工作 --> ' 吗?

服务器类型:MariaDB

服务器版本:10.1.9-MariaDB - mariadb.org二进制分发

Server-Zeichensatz:UTF-8 Unicode (utf8)

正确的代码写法是:

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

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

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

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

但这似乎不太可能。