首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQLSRV不会提取所有行

SQLSRV不会提取所有行
EN

Stack Overflow用户
提问于 2017-09-12 14:29:27
回答 1查看 1.3K关注 0票数 1

我正在使用php的sqlsrv扩展,在从一个简单的查询中获取行时遇到了问题。我的查询是select,它应该返回133228行,但当尝试显示这些行时,我只得到了15行。我已经搜索了答案,但没有找到解决方案,这是我第一次使用这个扩展。我已经找到了之前关于相同问题的答案,但在这种情况下,问题是双重调用sqlsrv_fetch_array,这一点我不确定。

下面是我的问题:

代码语言:javascript
复制
$sql = 'select * from ViewProduct';
$params = array();
$options = array('Scrollable' => SQLSRV_CURSOR_KEYSET);
$stmt = sqlsrv_query($dbRemote, $sql, $params, $options);
$count = sqlsrv_num_rows($stmt);

if ($count === false)
    echo "Error in retrieveing row count.";
else
echo $count;

//$rows = array();
while ($row = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC)) {
    print_r($row);
    echo "<br>";
    //$rows[] = $row;
}

正如我所说的,当查询应该是133228行时,上面的查询返回15。

我遗漏了什么?提前谢谢你。

EN

回答 1

Stack Overflow用户

发布于 2018-04-18 18:13:48

我也有同样的问题,这就是我的解决方案

代码语言:javascript
复制
$data = [];
$result_num = false;
// get rows num if have any
$result_count_res = sqlsrv_query( 
                        $conn, 
                        $query, 
                        [],  
                        [ "Scrollable" => SQLSRV_CURSOR_KEYSET ]
                    );

if( $result_count_res === false) {
    echo "Row count false";
}else{
    // set row num
    $result_num = sqlsrv_num_rows( $result_count_res ); 
} 

if($result_num){

    // run another query to retrive results
    $result_res = sqlsrv_query( 
                $conn, 
                $query, 
                [],  
                [ "Scrollable" => SQLSRV_CURSOR_FORWARD ]
            );

    if( $result_res === false) {

        // get errors from query
        die( print_r( sqlsrv_errors(), true) );

    }else{

        // run through "for" loop to retrive all results
        for($i = 0; $i < $result_num; $i++){
            $data[] = sqlsrv_fetch_array( $result_res, SQLSRV_FETCH_ASSOC);
        }

    }   

    sqlsrv_free_stmt( $result_res );

}else{
    echo "Row count false";
}

echo '<pre>';
var_dump($data);
echo '</pre>';
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46169384

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档