【问题标题】:SQL Server & PHP sqlsrv_fetch_array returns null when result set has only one row当结果集只有一行时,SQL Server 和 PHP sqlsrv_fetch_array 返回 null
【发布时间】:2018-03-16 20:23:54
【问题描述】:

我正在尝试从 PHP 中的 sql server 获取数据。
我的代码是这样的:

$conn = "...";
$sql = "SELECT A.* FROM A 
        LEFT JOIN B ON A.id = B.id
        WHERE A.First_Name = 'Mary'";
$stmt = sqlsrv_query($conn, $sql);
if( sqlsrv_fetch($stmt) === false) {
     die( print_r( sqlsrv_errors(), true));
}
while($row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_ASSOC)) {
   echo $row['Last_Name'];
}

当结果集中只有一行时,返回null。但我可以使用 sqlsrv_get_field 得到结果。是什么原因?

【问题讨论】:

    标签: php sql sql-server sqlsrv


    【解决方案1】:

    这个:

    if( sqlsrv_fetch($stmt) === false) {
         die( print_r( sqlsrv_errors(), true));
    }
    

    获取一行。之后,在 while 循环中没有更多行可以获取。

    相反,删除 fetch 调用并仅评估 $stmt。如果查询失败则为假。

    if($stmt === false) {
         die( print_r( sqlsrv_errors(), true));
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-11-25
      • 1970-01-01
      • 1970-01-01
      • 2017-01-03
      • 1970-01-01
      • 2013-11-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多