# Предопределённые константы

## Содержание

- Режимы выборки

Следующие константы определяются модулем и доступны, только если модуль либо собрали в PHP, либо динамически загрузили при выполнении кода.

## Курсоры

См. также описание константы `PDO::ATTR_CURSOR_NAME`.

`PDO::FETCH_ORI_NEXT` (int)
  Предписывает выбрать следующую строку из набора результатов. Константа действительна только для прокручиваемых курсоров.
`PDO::FETCH_ORI_PRIOR` (int)
  Предписывает выбирать предыдущую строку из набора результатов. Константа действительна только для прокручиваемых курсоров.
`PDO::FETCH_ORI_FIRST` (int)
  Предписывает выбирать первую строку из набора результатов. Константа действительна только для прокручиваемых курсоров.
`PDO::FETCH_ORI_LAST` (int)
  Предписывает выбирать последнюю строку из набора результатов. Константа действительна только для прокручиваемых курсоров.
`PDO::FETCH_ORI_ABS` (int)
  Предписывает выбирать строку с заданным номером из набора результатов. Константа действительна только для прокручиваемых курсоров.
`PDO::FETCH_ORI_REL` (int)
  Предписывает выбирать строку из набора результатов относительно текущего положения курсора. Константа действительна только для прокручиваемых курсоров.
`PDO::CURSOR_FWDONLY` (int)
  Предписывает создавать объект PDOStatement с последовательным курсором. Последовательные курсоры выбираются по умолчанию, поскольку это наиболее общий и быстрый в PHP шаблон доступа к данным.
`PDO::CURSOR_SCROLL` (int)
  Предписывает создавать объект PDOStatement с прокручиваемым курсором. Передача констант семейства `PDO::FETCH_ORI_*` управляет поведением курсора при выборке строк из набора результатов.

## Другие константы

`PDO::PARAM_BOOL` (int)
  Представляет логический тип данных.
`PDO::PARAM_NULL` (int)
  Представляет тип данных NULL в SQL.
`PDO::PARAM_INT` (int)
  Представляет тип данных INTEGER в SQL.
`PDO::PARAM_STR` (int)
  Представляет CHAR, VARCHAR и другие строковые типы данных в SQL.
`PDO::PARAM_STR_NATL` (int)
  Флаг для обозначения строк в национальных кодировках. Константа доступна с PHP 7.2.0.
`PDO::PARAM_STR_CHAR` (int)
  Флаг для обозначения строк в кодировках по умолчанию для БД. Константа доступна с PHP 7.2.0.
`PDO::PARAM_LOB` (int)
  Представляет в БД тип данных для больших объектов (англ. Large Objects, LOB) в SQL.
`PDO::PARAM_STMT` (int)
  Представляет тип recordset. Не поддерживается текущими драйверами.
`PDO::PARAM_INPUT_OUTPUT` (int)
  Указывает, что параметр хранимой процедуры работает в режиме INOUT. Константу указывают через побитовое ИЛИ с константой семейства `PDO::PARAM_*`.
`PDO::ATTR_AUTOCOMMIT` (bool)
  Со значением `false` модуль PDO попытается отключить автоматическую фиксацию изменений в базе данных, чтобы подключение начало транзакцию. Начиная с PHP 8.4.0 у константы логический тип (bool); ранее использовался целочисленный тип (int).
`PDO::ATTR_PREFETCH` (int)
  Баланс между расходом памяти и скоростью работы с базой данных регулируют путём изменения размера буфера предвыборки. Не каждая комбинация «база — драйвер» поддерживает изменение размера этого буфера. Чем больше этот размер, тем выше быстродействие, но и выше расход памяти.
`PDO::ATTR_TIMEOUT` (int)
  Устанавливает время в секундах, в течение которого требуется завершить обмен с базой данных.
`PDO::ATTR_ERRMODE` (int)
  Подробно об этом атрибуте рассказывает раздел «Ошибки и обработка ошибок».
`PDO::ATTR_SERVER_VERSION` (int)
  Атрибут доступен только для чтения; константа возвращает информацию о версии сервера баз данных, к которому подключён модуль PDO.
`PDO::ATTR_CLIENT_VERSION` (int)
  Атрибут доступен только для чтения; константа хранит информацию о версии клиентских библиотек, с которыми взаимодействует драйвер модуля PDO.
`PDO::ATTR_SERVER_INFO` (int)
  Атрибут доступен только для чтения; константа возвращает метаинформацию о сервере баз данных, к которому подключён модуль PDO.
`PDO::ATTR_CONNECTION_STATUS` (int)
`PDO::ATTR_CASE` (int)
  Приводит названия столбцов к регистру, который определяют константами семейства `PDO::CASE_*`.
`PDO::ATTR_CURSOR_NAME` (int)
  Получает или устанавливает название курсора. Константа полезна при работе с прокручиваемыми курсорами и позиционными обновлениями.
`PDO::ATTR_CURSOR` (int)
  Выбирает типа курсора. Драйвер модуля PDO поддерживает два типа курсоров: `PDO::CURSOR_FWDONLY` и `PDO::CURSOR_SCROLL`. Тип `PDO::CURSOR_SCROLL` указывают, только если требуется прокручиваемый курсор, иначе выбирают режим последовательного курсора — `PDO::CURSOR_FWDONLY`.
`PDO::ATTR_DRIVER_NAME` (int)
  Возвращает название драйвера.

  Пример #1 Извлечение названия драйвера через атрибут `PDO::ATTR_DRIVER_NAME`

      <?php

      if ($db->getAttribute(PDO::ATTR_DRIVER_NAME) == 'mysql') {
          echo "Работаем с драйвером mysql; выполняем операцию, специфичную для драйвера mysql\n";
      }

`PDO::ATTR_ORACLE_NULLS` (int)
  При выборке данных преобразует пустые строки в значения с SQL-типом NULL.
`PDO::ATTR_PERSISTENT` (int)
  Запрашивать постоянное соединение вместо установки нового подключения. Подробнее об атрибуте рассказывает раздел «Подключения и управление подключениями».
`PDO::ATTR_STATEMENT_CLASS` (int)
  Устанавливает название класса, в виде экземпляров которого возвращаются результаты SQL-запросов.
`PDO::ATTR_FETCH_CATALOG_NAMES` (int)
  Предписывает предварять названия столбцов названиями каталогов в наборе результатов. Название столбца и название каталога разделяют символом точки. Поддержка атрибута выполняется на уровне драйвера; атрибут поддерживается не каждым драйвером.
`PDO::ATTR_FETCH_TABLE_NAMES` (int)
  Предписывает предварять названия столбцов названиями исходных таблиц в наборе результатов. Название столбца и название таблицы разделяют символом точки. Поддержка атрибута выполняется на уровне драйвера; атрибут поддерживается не каждым драйвером.
`PDO::ATTR_STRINGIFY_FETCHES` (int)
  Заставляет значения выборки, кроме `null`, обрабатываться как строки. Значения `null` не изменяются, если только для атрибута `PDO::ATTR_ORACLE_NULLS` не установили значение `PDO::NULL_TO_STRING`.
`PDO::ATTR_MAX_COLUMN_LEN` (int)
  Устанавливает максимум длины названия столбца.
`PDO::ATTR_DEFAULT_FETCH_MODE` (int)
`PDO::ATTR_EMULATE_PREPARES` (bool)
  Включает или отключает эмуляцию подготовленных запросов. Некоторые драйверы либо не поддерживают встроенные подготовленные запросы, либо поддерживают их ограниченно. Со значением `true` модуль PDO всегда эмулирует подготовленные запросы; со значением `false` используются встроенные подготовленные запросы драйвера. Начиная с PHP 8.4.0 у константы логический тип (bool); ранее использовался целочисленный тип (int).
`PDO::ATTR_DEFAULT_STR_PARAM` (int)
  Устанавливает тип строкового параметра по умолчанию. Атрибут принимает значение в виде константы `PDO::PARAM_STR_NATL` или `PDO::PARAM_STR_CHAR`. Константа доступна с PHP 7.2.0.
`PDO::ERRMODE_SILENT` (int)
  Подавляет генерацию ошибок и исключений при сбое. Разработчик сам проверяет, не возникла ли ошибка. До PHP 8.0.0 этот режим обработки ошибок применялся по умолчанию. Подробнее об атрибуте рассказывает раздел «Ошибки и обработка ошибок».
`PDO::ERRMODE_WARNING` (int)
  Предписывает выдавать сообщение о PHP-ошибке уровня `E_WARNING`. Подробнее об атрибуте рассказывает раздел «Ошибки и обработка ошибок».
`PDO::ERRMODE_EXCEPTION` (int)
  Предписывает выбрасывать исключение PDOException при ошибках. Подробнее об атрибуте рассказывает раздел «Ошибки и обработка ошибок».
`PDO::CASE_NATURAL` (int)
  Сохраняет регистр названий столбцов в результатах драйвера базы данных.
`PDO::CASE_LOWER` (int)
  Приводит названия столбцов к нижнему регистру.
`PDO::CASE_UPPER` (int)
  Приводит названия столбцов к верхнему регистру.
`PDO::NULL_NATURAL` (int)
`PDO::NULL_EMPTY_STRING` (int)
`PDO::NULL_TO_STRING` (int)
`PDO::ERR_NONE` (string)
  Значение константы соответствует SQLSTATE-коду '00000', который указывает на успешное выполнение SQL-запроса, без ошибок и предупреждений. Константа помогает убедиться в отсутствии ошибок через сравнение значения константы с SQLSTATE-кодами из методов PDO::errorCode() и PDOStatement::errorCode(), хотя о появлении ошибки и так станет известно, когда сам результат выполнения PDO-метода укажет на состояние ошибки.
`PDO::PARAM_EVT_ALLOC` (int)
  Сигнализирует о событии выделения памяти для параметра запроса.
`PDO::PARAM_EVT_FREE` (int)
  Сигнализирует о событии освобождения памяти, выделенной для параметра запроса.
`PDO::PARAM_EVT_EXEC_PRE` (int)
  Идентифицирует событие, которое срабатывает перед выполнением подготовленного SQL-запроса.
`PDO::PARAM_EVT_EXEC_POST` (int)
  Идентифицирует событие, которое срабатывает после выполнения подготовленного SQL-запроса.
`PDO::PARAM_EVT_FETCH_PRE` (int)
  Идентифицирует событие, которое срабатывает перед извлечением данных из результата запроса.
`PDO::PARAM_EVT_FETCH_POST` (int)
  Идентифицирует событие, которое срабатывает после извлечения данных из результата запроса.
`PDO::PARAM_EVT_NORMALIZE` (int)
  Идентифицирует событие, которое срабатывает при регистрации драйвером привязанного параметра перед нормализацией названия параметра.
`PDO::SQLITE_DETERMINISTIC` (int)
  Указывает на детерминированность функции, которую создали методом PDO::sqliteCreateFunction(). Детерминированная функция всегда возвращает один и тот же результат при одинаковых входных данных в пределах одной SQL-инструкции. Константа доступна с PHP 7.1.4.

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open