Intereting Posts
Как использовать базовую авторизацию в PHP curl PHP / MySQL Показывать первые X результатов, скрыть остальные PHP: конвертировать кодировку unicode в UTF-8 Не удалось запустить приложение «Google-приложение» Как включить переменную PHP внутри инструкции вставки MySQL хотите вставить загруженный файл csv в базу данных. он говорит «не выбрана база данных», что я пропустил? Слияние массивов PHP однозначно 1054 – Неизвестный столбец 'apa_calda' в 'where clause' Нужна помощь в создании запроса на основе значений фильтра ui получить электронную почту с помощью PHP и pop3 – какова ваша техника? Соглашение о названии базы данных / модели в Laravel? Взрывание массива в параметре цикла foreach Замена значения NULL в текущей строке на основе «ближайшего» соответствия «ранее». (таблица, основанная на дате) Как использовать API BigCommerce для обновления клиента customer_group_id с помощью основного PHP? odbc_exec vs odbc_excute

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

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

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

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

Википедия дает следующее:

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

И это :

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

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

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

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

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

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

Интересной представляется возможность «прокручивать» через набор результатов, не заставляя все данные в памяти перебирать их.

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

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