2014-11-06 63 views
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

回答

3

嘗試以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