无法从mssql数据库中获取结果

时间:2014-06-16 08:42:48

标签: php html sql-server

每当我查询并显示结果项时,我都会遇到问题。我正在使用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";

  }

每当我搜索数据时,它总是显示即使数据存储在数据库中也没有找到记录。请帮忙?新手在这里

1 个答案:

答案 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函数在获取任何行之前调用它时不知道行数。