2012-05-23 139 views
0

在以下代碼中,如果結果集爲空,則代碼將繼續處理結果。我想要的只是顯示「查詢失敗」。當沒有結果時。結果集爲空時顯示消息

$connInfo = array('UID'=>$user, 'PWD'=>$passwd, 'Database'=>$database); 
$dbconn = sqlsrv_connect($server, $connInfo); 

if($dbconn === false){ 
    die("<br />Error connecting to the database.<br />"); 
} 
//SQL Query 
$query = "SELECT ... FROM somehwere"; 

//Run Query 
$qresult = sqlsrv_query($dbconn, $query); 
if($qresult === false) { 
    die('Query failed.'); 
} 

?> 
...more code... 

回答

4

$ qresult將包含一個空的結果集,如果沒有行被發現,但它仍然不會計算爲false。

試試這個函數:

http://www.php.net/manual/en/function.sqlsrv-num-rows.php

所以:

if(!sqlsrv_num_rows($qresult)) { 
    die('Query failed.'); 
} 

相反的:

if($qresult === false) { 
    die('Query failed.'); 
} 
0

它不顯示 「查詢失敗」,因爲查詢有沒有失敗。它只返回0行。所以,解決方案將使用:

$row_count = sqlsrv_num_rows($qresult); 
if ($row_count > 0){ 
// display stuff 
} 
else{ 
// throw exception 
} 
0

謝謝。我得到它使用sqlsrv_has_rows()函數工作。

if($qresult !== NULL) { 
    $rows = sqlsrv_has_rows($qresult); 
    if($rows === true) { 
     //display success 
    } else { 
     //display error 
    } 
} 

由於某種原因,我無法讓sqlsrv_num_rows()爲我正常工作。