如何在wp_postmeta表中查询任何特定的meta_value?

时间:2013-04-24 作者:Akhilesh

我在主题文件中使用以下代码从DB获得一些输出:

<?php $querystr = "SELECT DISTINCT meta_value FROM $wpdb->wp_postmeta WHERE \'meta_key\' LIKE \'movie_name\' ORDER BY meta_value ASC";
$movie_names =  $wpdb->get_results($querystr, OBJECT);
echo sizeof($movie_names);
?>
<ul>
<?php foreach ( $movie_names as $movie_name ){ ?>
   <li><?php echo $movie_name->meta_value; ?> </li>
<?php } ?>
</ul>
上述代码的前端结果为“0”。但当我运行相同的查询时,即。

SELECT DISTINCT meta_value FROM wp_postmeta WHERE \'meta_key\' LIKE \'movie_name\' ORDER BY meta_value ASC
在DB中,则返回6行。请帮我找出代码中的问题。

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

$wpdb->wp_postmeta 是错误的。始终使用just$wpdb->postmeta – 没有其他前缀。

所以

global $wpdb;

$querystr = "
    SELECT DISTINCT meta_value 
    FROM $wpdb->postmeta 
    WHERE meta_key LIKE \'movie_name\' 
    ORDER BY meta_value ASC
";

$movie_names = $wpdb->get_results( $querystr, OBJECT );

if ( ! $movie_names ) {
    $wpdb->print_error(); // Get the last error message for debugging
}
else {
    // Do something awesome with the movies
}

结束

相关推荐