PHP: PDO
2026-02-26 14:59 Diff

Для работы с результатами запроса используется объект класса PDOStatement. Объект этого класса представляет собой сначала подготовленный запрос, а после выполнения запроса в базу — набор результатов выполнения

Для получения результатов после выполнения запроса используются следующие методы:

  • fetchAll() — Выбирает все оставшиеся строки из набора результатов
  • fetch() — Выбирает только одну следующую строку из набора результатов

Получение всех данных

Получить сразу все оставшиеся строки из набора результатов можно при помощи метода fetchAll(). Результат будет получен в виде массива

Метод fetchAll() может принимать параметр — константу, который определяет, как будут представлены данные

PDO::FETCH_ASSOC указывает, что каждая строка результирующего набора должна быть ассоциативным массивом, индексы которого соответст��уют именам столбцов результата выборки

Получение данных построчно

Метод fetch() позволяет получать данные из набора результатов построчно. При использовании этого метода объект PDOStatement выполняют роль курсора — указателя на набор данных, хранящихся в памяти в базе. Другими словами, это не набор извлеченных данных из базы, это всего лишь указатель на них. Курсор может последовательно перебирать данные при помощи метода fetch(). Каждый следующий вызов этого метода приводит к тому, что содержимое объекта подменяется новой порцией данных от СУБД.

Метод также принимает параметр, который определяет, в каком виде будет возвращена очередная строка из набора. При использовании PDO::FETCH_ASSOC результат будет возвращен в виде ассоциативного массива. В случае, если строк в наборе больше нет, метод возвращает false

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