gpt4 book ai didi

php - sqlsrv 数组不返回所有行

转载 作者:可可西里 更新时间:2023-11-01 13:50:36 30 4
gpt4 key购买 nike

我似乎无法弄清楚为什么 sqlsrv_fetch_assoc 根据 sqlsrv_num_rows 结果集中有 2 行时只返回 1 行。我已尝试对参数进行硬编码,但我仍然得到相同的结果。

SSMS 结果集

id     description------ -------------2      Administrator3      User

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);

我收到了

Array(    [id] => 2    [description] => Administrator)

sqlsrv_num_rows

echo sqlsrv_num_rows( $query );
//Returns 2

最佳答案

When I try to view the result set

      $row = sqlsrv_fetch_array( $query, SQLSRV_FETCH_ASSOC );
      print_r($row);`

既然你单独列出了这个,我希望你没有这样做(显示所有代码):

$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);
}

因为很明显,您在每次循环迭代中使用 sqlsrv_fetch_array 两次,一次用于条件检查,一次循环中。

从 while 循环中删除所有的绒毛,只有这个 - 绝对没有别的,甚至没有......或评论。

while( $row = sqlsrv_fetch_array( $query, SQLSRV_FETCH_ASSOC )) {
print_r($row);
}

关于php - sqlsrv 数组不返回所有行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16155073/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com