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

답변:


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아무것도 얻지 못한다. 정말 이유를 모르겠어요 ..
user1933824

해당 코드를 완전히 복사하여 붙여 넣기 만하면됩니다. 그것이 결과를 얻기 위해해야 ​​할 전부입니다.
Balas

예, 효과가있었습니다! 내 코드와 코드를 검토하려고 할 때 내가 본 유일한 차이점은이 부분 $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내장 테이블에는 사용하지 않아야합니다. 직접 전화하십시오. 이것이 그의 대답이기도합니다.
카이저

1

다음 코드를 시도하십시오. 비슷한 문제에 직면하여 'FROM'필드에서 $ wpdb를 제거하여 해결했습니다.

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

echo $result; // display data

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.