每当我查询和显示结果项时都会遇到问题。我使用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";
}
每当我搜索数据时,它总是显示没有发现记录,即使数据存储在数据库中。帮助吗?新手在这里
从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)每次只从数据库中获取一行记录。这意味着在获取任何行之前调用sqlsrv_num_rows函数时,它不知道行数。