我似乎无法弄清楚为什么sqlsrv_fetch_assoc
当结果集中有 2 行时只返回 1 行sqlsrv_num_rows
。我尝试对参数进行硬编码,但仍然得到相同的结果。
SSMS 结果集
标识说明 ------ ------------- 2 管理员 3 用户
PHP
$col = 'abcd';
$stmt = "SELECT id, [description] FROM dbo.tbl WHERE col = ?";
$params = array( $col );
$options = array( "Scrollable" => SQLSRV_CURSOR_KEYSET );
$query = sqlsrv_query( $conn, $stmt, $params, $options );
if( $query === false ) {
print( print_r( sqlsrv_errors() ) );
}
while( $row = sqlsrv_fetch_array( $query, SQLSRV_FETCH_ASSOC )) {
...
}
当我尝试查看结果集时
$row = sqlsrv_fetch_array( $query, SQLSRV_FETCH_ASSOC );
print_r($row);
我收到
大批 ( [id] => 2 [描述] => 管理员 )
sqlsrv_num_rows
echo sqlsrv_num_rows( $query );
//Returns 2