在下面的代码中,如果结果集为空,代码将继续处理结果。相反,我想要的是在没有结果时只显示"查询失败"。
$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...
如果未找到行,$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 行。因此,解决方案将是使用:
$row_count = sqlsrv_num_rows( $qresult);
if ($row_count > 0){
// display stuff
}
else{
// throw exception
}
谢谢。 我让它使用 sqlsrv_has_rows() 函数工作。
if($qresult !== NULL) {
$rows = sqlsrv_has_rows($qresult);
if($rows === true) {
//display success
} else {
//display error
}
}
由于某种原因,我无法让 sqlsrv_num_rows() 为我正常工作。