使用wpdb的get_results


12

我正在尝试检索数据库中的信息。我想pages使用此语句显示所有内容,但我空白ARRAY

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

echo $result; // display data

输出:

  ARRAY

编辑:更改以下建议后,我现在正在使用它。但我仍然没有得到任何结果:

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/>';

    }

尝试$wpdb->wp_posts用花括号包裹,即。{$wpdb->wp_posts}..
t31os

Answers:


18
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/>';
}

您好@balamurugan,我尝试了您的回答,但我仍然没有得到任何结果。您可以在上方看到我的“ 编辑”部分。
user1933824

实际上,您得到的是什么,以及您要从我的代码中删除...。我对其进行了测试并获得了所有页面的ID
Balas

我正在使用我的编辑部分,如我的原始帖子上方所示。我echo $result只是试图确保从获取的query内容中获取即时信息是打印出来的Array。当我使用echo $page->ID我什么都没得到。我真的不确定为什么
。–

您只需简单地完全复制并粘贴该代码即可。这是获得结果的全部步骤。
Balas 2013年

是的,它有效!当我尝试查看我的代码和你的代码时,我看到的唯一区别是$tablename = $wpdb->prefix.'posts';这部分不在法典文档中。您能告诉我为什么会起作用吗?
user1933824

3

您有一点误会:

调用时$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'" );

1
为此+1,谢谢。但是我需要赞扬首先回复我的人,他已经提供了正确的答案,我只是无法听从他的指示。
user1933824

当然。旁注:正如我所说,$wpdb->prefix不应将其用于内置表。只需直接致电即可。固定这也是他的答案。
kaiser

1

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

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

echo $result; // display data

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.