从mssql数据库获取结果时遇到麻烦


Trouble getting results back from mssql database

每当我查询和显示结果项时都会遇到问题。我使用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函数时,它不知道行数。