SQL中的某些数据类型不需要使用引号,整数就是其中之一。这就是为什么第一块代码可以工作的原因。这是一条完全有效的SQL语句。
您确实需要在SQL中引用字符串。这就是为什么您的第二块代码无法工作的原因。正确的形式是:
$all_pages = $wpdb->get_results(
\'SELECT post_title, guid FROM wp_11_posts WHERE post_title = "Office Home"\',
OBJECT
);
如果您的数据以任何方式受到用户输入的影响,您应该使用
prepare()
.
$string = "Office Home"; // if coming from $_POST or $_GET data or other user manipulatable sources
$sql = \'SELECT post_title, guid FROM wp_11_posts WHERE post_title = %s\';
$sql = $wpdb->prepare($sql,$string);
$all_pages = $wpdb->get_results($sql,OBJECT);
prepare()
将根据占位符--
%s
.