I am doing the following:
$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);
If I remove the line ‘AND p.post_type = “%s”‘ then I get results returned, otherwise I get an empty array returned. If I run the query direct against the DB in a mysql client, I get results.
There is no error, just an empty result set. I am doing similar queries throughout my file and they are working so I’m not looking for “don’t do it like that” style replies. I just need to understand why this isn’t working and fix it.
PHP 5.3, MYSQL 5.1. WordPress MU 2.9.2
Do not Quote
"%s". From the WordPress site, “Notice that you do not have to worry about quoting strings. Instead of passing the variables directly into the SQL query, use a%splaceholder for strings and a%dplacedolder for integers.”Example:
$wpdb->query( $wpdb->prepare( "UPDATE $wpdb->posts SET post_title = %s WHERE ID = %d", $var, $id ) );