get_results using wpdb

时间:2013-08-19 作者:user1933824

我正在尝试检索数据库中的信息。我想展示所有pages 使用这个语句,但我得到了一个空白ARRAY

global $wpdb;
$result = $wpdb->get_results (
        "
        SELECT * 
        FROM  $wpdb->wp_posts 
        WHERE post_type =  \'page\'
        "
        );

echo $result; // display data
输出:

  ARRAY
EDIT: 在更改了下面的建议之后,我现在正在使用这个。但我仍然没有得到任何结果:

global $wpdb;

    $posts = $wpdb->wp_posts;
    $result = $wpdb->get_results( " SELECT * FROM  $posts WHERE \'post_type\' =  \'page\' "  );

    foreach ($result as $page) {
            echo $page->ID.\'<br/>\';

    }

4 个回复
最合适的回答,由SO网友:Balas 整理而成
global $wpdb;

$result = $wpdb->get_results ( "
    SELECT * 
    FROM  $wpdb->posts
        WHERE post_type = \'page\'
" );

foreach ( $result as $page )
{
   echo $page->ID.\'<br/>\';
   echo $page->post_title.\'<br/>\';
}
SO网友:kaiser

您有一点误解:

呼叫时$wpdb, 您将获得包含表的核心名称的属性列表:

// The custom prefix from wp-config.php
// only needed for custom tables
$wpdb->prefix

// Tables where you don\'t need a prefix: built in ones:
$wpdb->posts
$wpdb->postmeta
$wpdb->users
因此,您的最终查询看起来像这样:

$wpdb->get_results( "SELECT * FROM {$wpdb->posts} WHERE post_type = \'page\'" );

SO网友:Wahid Kadwaikar

请尝试以下代码。我遇到了类似的问题,并通过从“from”字段中删除$wpdb来解决它。

global $wpdb;
$result = $wpdb->get_results (
            "
            SELECT * 
            FROM  wp_posts 
            WHERE post_type =  \'page\'
            "
            );

echo $result; // display data

SO网友:Srikanth AD

“空白数组”是指“空数组”还是指输出“数组”。如果是后者,则为预期输出。您需要遍历该数组并相应地显示结果。

参考号:http://codex.wordpress.org/Class_Reference/wpdb#SELECT_Generic_Results

结束

相关推荐

自定义WP_QUERY中按DESC、ASC排序

我需要在查询中进行多级排序。问题是如何像在SQL中那样对一个值DESC和另一个值ASC进行排序。当我在终端中运行时,以下SQL似乎为我提供了所需的内容:SELECT DISTINCT * FROM wp_posts INNER JOIN wp_postmeta ON wp_posts.ID = wp_postmeta.post_id WHERE wp_posts.post_type = \'post\' AND wp_postmeta.meta_key = \'pb