2011-03-28 97 views
0
我有試圖從在PHP一份聲明中查詢得到的行數的問題

,我的查詢看起來如下PHP:顯示消息如果NUM_ROWS = 0從mysqli的準備語句

$DBH = getDBH(); 
$stmt = $DBH->prepare("SELECT info FROM list WHERE tag = ?"); 
$stmt->bind_param("s",$tag); 
$stmt->execute(); 
$stmt->bind_result($information); 

和我基本上只是想說,如果沒有結果返回顯示「沒有結果返回」任何人都可以請幫忙嗎?

+0

向getDBH的作者();夥計 – 2011-03-28 07:33:52

+0

getDBH只是初始化連接,它什麼都不做。 – mcbeav 2011-03-28 07:40:50

+0

我只是想獲取返回的行數,當我使用$ stmt-> num_rows;它總是返回0. – mcbeav 2011-03-28 07:46:00

回答

3

您需要使用$statement->store_result()第一。使用代碼:

$DBH = getDBH(); 
$stmt = $DBH->prepare("SELECT info FROM list WHERE tag = ?"); 
$stmt->bind_param("s",$tag); 
$stmt->execute(); 
$stmt->store_result(); 
$num_rows = $stmt->num_rows; 
$stmt->bind_result($information); 
+0

真棒,非常感謝。非常簡單的修復,我不知道我必須先store_result。再次感謝。 – mcbeav 2011-03-28 07:55:03

1

我不承認你使用了類,但一般我這樣做:

$sql = "SELECT * FROM dummy WHERE category=13"; 
$result = mysql_query($sql); 
if(mysql_num_rows($result)>0) { 
// execute for positive results 
} else { 
// execute for 0 rows returned. 
} 
+0

他顯然使用mysqli作爲後端,而不是普通的mysql。然而,你有正確的觀點說getDBH()是一個手工製作的類,沒有人知道它的方法 – 2011-03-28 07:33:24

+0

好吧,我遇到的問題是mysql_num_rows不起作用,我使用mysqli prepared語句,謝謝。 – mcbeav 2011-03-28 07:33:36

+1

嗯現在我正在閱讀更多關於mysqli - 我應該學習這個! – jeffkee 2011-03-28 07:36:27

0
$sql = "SELECT * FROM dummy WHERE category=13"; 
$result = mysqli_query($link, $sql); 
$numrows=mysqli_num_rows($result) 
if($numrows>0) { 
// execute for positive results 
} else { 
// execute for 0 rows returned. 
}