Answers:
确实,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();