我正在做以下事情:
$type = 'attachment';
$images = $wpdb->get_results($wpdb->prepare('
SELECT p.*
FROM wp_%d_posts p
WHERE p.post_parent =%d
AND p.post_type = "%s"
', $blog_id, $page->ID, $type),OBJECT);
var_dump($images);
如果我删除'AND p.post_type =“%s”'行,那么我会返回结果,否则我会返回一个空数组。如果我在mysql客户端中直接针对数据库运行查询,我会得到结果。
没有错误,只有空结果集。我在我的文件中做了类似的查询,他们正在工作,所以我不是在寻找“不要那样做”的样式回复。我只需要理解为什么这不起作用并修复它。
PHP 5.3,MYSQL 5.1。 WordPress MU 2.9.2
答案 0 :(得分:0)
不引用"%s"
。在WordPress网站上,“请注意,您不必担心引用字符串。不要将变量直接传递给SQL查询,而是使用%s
占位符表示字符串,使用%d
替换整数。 “
示例:强>
$wpdb->query( $wpdb->prepare( "UPDATE $wpdb->posts SET post_title = %s WHERE ID = %d", $var, $id ) );