SQLSRV не выбирает все строки

Я использую расширение sqlsrv для php и у меня проблема с извлечением строк из простого запроса.
Мой запрос — выбор, который должен вернуть 133228 строк, но при попытке отобразить строки я получаю только 15.
Я искал ответ, но не смог найти решение, и я впервые использую это расширение. Я нашел ответ на предыдущий вопрос об этой же проблеме, но в этом случае проблема заключалась в двойном вызове sqlsrv_fetch_array, которого у меня точно нет.

Вот мой запрос:

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

Как я уже сказал, приведенный выше запрос возвращает 15, когда должно быть 133228 строк.

Что мне не хватает?
Заранее спасибо.

1

Решение

у меня та же проблема,
это мое решение для этого

$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

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector