num_rows始终返回1

问题描述:

global $wpdb; 

$wpdb->get_results("SELECT * FROM wp_ap_promo WHERE wp_ap_promo.promocode = '".$promocode."' AND wp_ap_promo.business_id = " . $id .";"); 
echo $wpdb->num_rows; 

我的num_rows总是给出1,即使没有结果。num_rows始终返回1

编辑:好像问题出现在我的SQL表中。但接受的答案似乎也行得通。

+0

**警告**:不要忘记[正确转义](http://codex.wordpress.org/Class_Reference/wpdb#Protect_Queries_Against_SQL_Injection_Attacks)您的查询。你在这里可能包含一个[SQL注入漏洞](http://bobby-tables.com/)。 – tadman 2014-11-06 16:18:01

尝试以count()的值代替。

像这样:

global $wpdb; 

$test = $wpdb->get_results("SELECT * FROM wp_ap_promo WHERE wp_ap_promo.promocode = '".$promocode."' AND wp_ap_promo.business_id = " . $id .";"); 
echo count($test); 

,如果它仍然无法正常工作,使用这样的:

if($test != null) { 
    echo count($test); 
} else { 
    echo 0; 
} 

希望这有助于! :D

+0

你的意思是'count()'在我的SQL查询中? – janlindso 2014-11-06 16:09:08

+0

不,我的意思是计数()在您的PHP代码 – 2014-11-06 16:10:07

+0

@janlindso检查我更新的答案 – 2014-11-06 16:11:01