在SQL语句中使用反引号(`)而不是单引号(‘)?

时间:2017-01-04 作者:James

为了简洁起见,我这里部分显示了以下代码:

global $wpdb;
// creates jwp_bids in database if not exists
$table = $wpdb->prefix . "jwp_bids"; 
$charset_collate = $wpdb->get_charset_collate();
$sql = "CREATE TABLE IF NOT EXISTS $table (
    `id` mediumint(9) NOT NULL AUTO_INCREMENT,
    `bid_amt` text NOT NULL,
当我最初键入代码时,我使用\' 在括号内,代码将不会运行。

然后,我将单引号改为反勾号,代码运行得很好。

请有人解释一下:

奇怪的引号的正确术语是什么:)

  • 为什么用它们来代替\'

  • 1 个回复
    最合适的回答,由SO网友:Ryan McCue 整理而成

    反勾号和常规引号(单引号和双引号)在SQL中有不同的含义。引号表示文字字符串,而反勾号是带引号的标识符。这不是WordPress特有的,而是SQL中引用列或表的一般方法。

    例如,假设您正在运行一个比较两列的查询:

    SELECT * FROM wp_posts WHERE post_name = post_title
    
    如果与单引号比较(\'post_name\' = \'post_title\') 这将比较从不相等的文本字符串。但是,如果使用反勾号,它将引用列。

    为什么要使用反勾号?如果列的名称与SQL中的保留字相同,或包含空格,则需要将其引用。例如,如果有一列名为count, 每次提到它时,你都需要引用它,因为COUNT() 是MySQL中的一个函数(因此是保留字)。

    另请参见https://dba.stackexchange.com/questions/23129/benefits-of-using-backtick-in-mysql-queries

    相关推荐

    如何将WordPress配置为与Microsoft SQL Server数据库对话?

    我们正在我们的intranet站点上构建WordPress站点,并希望将其连接到Microsoft SQL Server。我已经在IIS上下载并配置了PHP和PHP管理器。我还从键入此线程标题时弹出的已回答问题列表中下载了SQL Server DLL。我按照指示在PHP文件夹中下载了这些DLL。当我启动服务器地址以安装WordPress时,系统会提示我提供SQL DB名称、用户名、密码和DB主机名。我还下载了wp-db抽象插件,将wp-db抽象化。php文件放入WordPress文件保存的文件夹中,按照我