SQL Server & PHP sqlsrv_fetch_array returns 结果集只有一行时为null

SQL Server & PHP sqlsrv_fetch_array returns null when result set has only one row

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

$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'];
}

当结果集中只有一行时,它returns为空。但是我可以使用 sqlsrv_get_field 得到结果。这是什么原因?

这个:

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

获取一行。之后,在 while 循环中不再有要获取的行。

取而代之的是,移除获取调用并仅评估 $stmt。查询失败则为false。

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