2014-10-18 107 views
0

我用下面的代码,以查找的行数返回:NUM_ROWS无返回值

global $wpdb; 

$results = $wpdb->get_results("SELECT * FROM list WHERE queue = 1 ORDER BY id ASC LIMIT 0,1"); 

$rowcount = $results->num_rows; 
echo $rowcount; 

正如你所看到的,结果仅限于1行,当我运行在SQL此查询它返回1行就好了。但在PHP中,$rowcount根本不返回任何值。

任何想法可能是错误的?我没有错误。

+1

我知道用'$ wpdb-> query',你可以使用'$ wpdb-> num_rows'得到结果的数量。但不确定关于'get_results'。 – Gohn67 2014-10-18 15:14:46

回答

1

我认为你需要使用count($results)因为$wpdb->get_results返回一个对象/数组的数组的方法。

另一种方式来获得的行数是使用$wpdb->num_rows。显然这适用于 $wpdb->get_results

从文档(http://codex.wordpress.org/Class_Reference/wpdb),它说以下有关get_results:

通用,多行的结果可以从数据库 get_results拉。该函数将整个查询结果作为数组返回。 此数组的每个元素对应于所述查询结果 的一行,并且,象get_row,可以是一个对象,关联数组或 编号阵列。如果找不到匹配的行,或者存在数据库错误,则返回值将是一个空数组。如果您的 $查询字符串为空,或者您传递的是无效的$ output_type,则将返回NULL,将返回 。

+0

你编辑之前的答案工作。但你是对的。它返回了一个数组列表。但是这个答案也很好。似乎我的原始资料是错误的。 – janlindso 2014-10-18 15:18:42

+0

啊,很酷。我不确定'$ wpdb-> num_rows'是否可以工作。我还会补充一点,因为从文档中不清楚。 – Gohn67 2014-10-18 15:20:02