2014-10-18 136 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