Подтвердить что ты не робот

Что такое прокручиваемый курсор PDO?

Что такое "Получение строк с помощью прокручиваемого курсора"?

4b9b3361

Ответ 1

Он создает cursor для запроса, который позволяет выполнять итерацию по набору результатов без получения всего результата сразу. A прокручиваемый курсор, в частности, это тот, который позволяет выполнять повторное воспроизведение назад.

Пример использования: вы можете прокручивать вперед, пока не найдете нужную запись, и повторите ее, чтобы получить предыдущие записи, если они вам тоже нужны.

Ответ 2

Wikipedia дает следующее:

С помощью не прокручиваемого курсора, также известный только как прямой, FETCH каждая строка не более одного раза, а курсор автоматически переходит к следующий ряд. Операция выборки после последняя строка была восстановлена позиционирует курсор после последнего строка и возвращает SQLSTATE 02000 (SQLCODE +100).

И это:

Программа может позиционировать прокручиваемую курсор в любом месте набора результатов используя оператор FETCH SQL.

Вы должны прочитать статью, связанную ранее, но это также выглядит как интересная информация:

Прокручиваемые курсоры могут потенциально доступ к той же строке в наборе результатов много раз. Таким образом, данные изменения (вставка, обновление, удаление операции) из других транзакций может повлиять на результат набор.

В PHP вы можете использовать прокручиваемые курсоры с PDO с помощью подготовленных операторов (см. PDOStatement::fetch):

Чтобы запросить прокручиваемый курсор для ваш объект PDOStatement, вы должны установить атрибут PDO:: ATTR_CURSOR для PDO:: CURSOR_SCROLL при подготовке оператор SQL с PDO:: prepare().

(также есть пример ниже этой страницы)

Кажется интересной возможность "прокручивать" через набор результатов, не заставляя все данные в памяти перебирать его.

Ответ 3

Для Mysql... не поддерживается = недоступно (ни mysql (i), ни PDO):

mysqli_result:: data_seek(), обратите внимание, что в руководстве указано: "Эта функция может использоваться только с буферизованными результатами, полученными с использованием функций mysqli_store_result() или mysqli_query()". То есть поиск выполняется на локально кэшированной копии набора результатов: не на сервере. Таким образом, он не поддерживает никаких предложений о "прокручиваемом курсоре".