【问题标题】:Trouble getting results back from mssql database从 mssql 数据库取回结果时遇到问题
【发布时间】:2014-06-16 08:42:47
【问题描述】:

每当我查询和显示结果项目时都会遇到问题。我正在为我的数据库使用 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";

  }

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

【问题讨论】:

    标签: php html sql-server


    【解决方案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) 一次只从数据库中获取一行记录。这意味着 sqlsrv_num_rows 函数在获取任何行之前调用它时不知道行数。

    【讨论】:

    • 不客气。如果我的回复对您有所帮助,请考虑将其标记为您问题的答案。
    猜你喜欢
    • 1970-01-01
    • 2019-10-01
    • 2018-02-27
    • 2019-01-28
    • 2021-10-12
    • 1970-01-01
    • 1970-01-01
    • 2017-08-16
    • 1970-01-01
    相关资源
    最近更新 更多