sqlsrv сбросил указатель на первый без получения записи - PullRequest
0 голосов
/ 01 ноября 2018

Я перебираю набор результатов sqlsrv с циклом while

while ( $row = sqlsrv_fetch_array($result_set) ) {
 ...  do stuff ...
}

Позже в моем коде я хочу снова просмотреть цикл результатов с помощью while, но я не знаю, как выполнить сброс в ПЕРВЫЙ без получения записи.

Это сбросит указатель, но также получит запись и переместит указатель:

sqlsrv_fetch($result_s4, SQLSRV_SCROLL_FIRST);

Я не хочу, чтобы это принесло запись! Я хочу подготовить еще один цикл с тем же набором данных. Я попробовал это, но это не сработало.

   while ( $row = sqlsrv_fetch_array($result_set, SQLSRV_SCROLL_FIRST) ) {

}

Как мне сбросить указатель, но не получить запись в процессе?

1 Ответ

0 голосов
/ 01 ноября 2018

Обратите внимание, что я использую этот стиль курсора в вызове sqlsrv_query:

$conn_cursor = array("Scrollable" => 'buffered');    
$result_set = sqlsrv_query($conn, $query, $params, $conn_cursor); 

Мне удалось снова обмануть и сбросить указатель на первую запись без извлечения фактической строки данных, подобной этой:

sqlsrv_fetch($result_set, SQLSRV_SCROLL_ABSOLUTE, -1);

Теперь я могу повторить цикл.

...