【问题标题】:invalid sql statement - apostrophes? [duplicate]无效的 sql 语句 - 撇号? [复制]
【发布时间】:2017-02-12 18:43:36
【问题描述】:

我编写了一些 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 二进制分发

服务器-Zeichensatz:UTF-8 Unicode (utf8)

【问题讨论】:

    标签: php mysql sql mariadb


    【解决方案1】:

    正确的代码写法是:

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

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

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

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

    但这似乎不太可能。

    【讨论】:

    • 我很抱歉....我做了反引号,因为在预览中我看不到'代码好的,我不需要列名中的'。我试过了,它可以工作,非常感谢,很抱歉我的愚蠢问题。这么简单……天哪……
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-18
    • 1970-01-01
    • 1970-01-01
    • 2013-01-01
    • 2010-12-29
    相关资源
    最近更新 更多