답변:
실제로 get_row()
하나의 결과를 기대할 때만 사용하십시오 . 그렇지 않으면 사용할 수 있습니다get_results()
데이터베이스에서 데이터를 가져 오는 방법에는 세 가지가 있습니다.
1. $wpdb->get_var
: 이것을 사용하여 데이터베이스 테이블에서 단일 값을 가져옵니다. 총 댓글 수를 계산하려는 경우와 같습니다. 다음과 같은 방법으로 수행 할 수 있습니다.
<?php
$comment_count = $wpdb->get_var($wpdb->prepare("SELECT COUNT(*) FROM $wpdb->comments;"));
echo '<p>Total comments: ' . $comment_count . '</p>';
?>
2. $wpdb->get_row
: 전체 테이블 행을 검색하려면 이것을 사용할 수 있습니다.
예:
<?php
$thepost = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM $wpdb->posts WHERE ID = 1" ) );
echo $thepost->post_title;
?>
또는
<?php
$thepost = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM $wpdb->posts WHERE ID = 1" ), ARRAY_A );
print_r ($thepost);
?>
ARRAY_A
get_row 에서 매개 변수 를 사용하면 게시물 데이터가 연관 배열로 리턴됩니다. 또는 ARRAY_N
매개 변수를 사용 하여 게시물 데이터를 숫자 색인 배열로 반환 할 수 있습니다 .
3. $wpdb->get_results
: 표준 SELECT
쿼리는 데이터베이스에서 여러 행의 데이터를 검색하기 위해 get_results 함수를 사용해야합니다.
<?php
global $wpdb;
$allposts = $wpdb->get_results( $wpdb->prepare("SELECT ID, post_title FROM $wpdb->posts WHERE post_status = 'publish'") );
foreach ($allposts as $singlepost) {
echo '<p>' .$singlepost->post_title. '</p>';
}
?>
예상 한대로 마지막 것이 필요합니다.
$wpdb->get_row('query', output_type, row_offset);
row_offset (정수) 원하는 행 (0이 첫 번째)입니다. 기본값은 0입니다.
내 솔루션은 간단합니다 ..
<?php
function count_results() {
# use the data base
global $wpdb;
# Query to count all results from one table
$sql_count_results = '
SELECT count(*) as count
FROM `YOUR_TABLE`;';
# Ejecute function
$results = $wpdb->get_row( $sql_count_results , OBJECT );
# Return results
return $results->count;
}
용도:
<?php
echo count_results();