每当我查询并显示结果项时,我都会遇到问题。我正在使用PHP和MSSQL作为我的数据库。我从数据库查询时没有问题,但是当我添加“if”语句以便显示“NO RECORDS FOUND”时,问题就出现了。
这是我的代码,我认为问题是:
//在表格中显示结果
if(sqlsrv_num_rows($result)>0){
$o = '<table id="myTable">
<thead>
<tr>
<th>Name</th>
<th>Age </th>
<th>Sex</th>
</tr>
</thead><tbody>';
while ( $record = sqlsrv_fetch_array($result) )
{
$o .= '<tr><td>'.$record ['Name'].'</td><td>'.$record ['Age'].'</td><td>'.$record ['Sex'].'</td></tr>';
}
$o .= '</tbody></table>';
echo $o;
}
else{
echo "No records found";
}
每当我搜索数据时,它总是显示即使数据存储在数据库中也没有找到记录。请帮忙?新手在这里
答案 0 :(得分:1)
来自sqlsrv_num_rows的文档:
此函数要求使用静态或键集游标创建语句资源。
确保您创建这样的查询(请注意SQLSRV_CURSOR_KEYSET选项):
$sql = "SELECT * FROM Table_1";
$params = array();
$options = array( "Scrollable" => SQLSRV_CURSOR_KEYSET );
$result = sqlsrv_query( $conn, $sql , $params, $options );
原因是默认选项(SQLSRV_CURSOR_FORWARD)一次只从数据库中提取一行记录。这意味着sqlisrv_num_rows函数在获取任何行之前调用它时不知道行数。