为了简洁起见,我这里部分显示了以下代码:
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,
当我最初键入代码时,我使用
\'
在括号内,代码将不会运行。
然后,我将单引号改为反勾号,代码运行得很好。
请有人解释一下:
奇怪的引号的正确术语是什么:)
为什么用它们来代替\'这只与MySQL相关吗?WP?Php我在哪里可以找到这类事情的技术参考,这样我就不必打扰你们了
最合适的回答,由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