It should be noted that PDO::FETCH_CLASS will call the constructor *after* setting the values (or calling __set).
Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.
PDO использует константы класса с PHP 5.1. До этого использовались глобальные
константы в форме PDO_PARAM_BOOL
.
PDO::PARAM_BOOL
(int)
PDO::PARAM_NULL
(int)
PDO::PARAM_INT
(int)
PDO::PARAM_STR
(int)
PDO::PARAM_STR_NATL
(int)
PDO::PARAM_STR_CHAR
(int)
PDO::PARAM_LOB
(int)
PDO::PARAM_STMT
(int)
PDO::PARAM_INPUT_OUTPUT
(int)
PDO::FETCH_LAZY
(int)
PDO::FETCH_LAZY
создаёт объект с такими же именами переменных, с которыми осуществлялась
выборка. Константа недействительна для функции
PDOStatement::fetchAll().
PDO::FETCH_ASSOC
(int)
PDO::FETCH_ASSOC
будет возвращать по одному значению
для каждого столбца. Значения дублирующихся столбцов будут утеряны.
PDO::FETCH_NAMED
(int)
PDO::FETCH_NAMED
возвращает массив значений для каждого
имени столбца.
PDO::FETCH_NUM
(int)
PDO::FETCH_BOTH
(int)
PDO::FETCH_OBJ
(int)
PDO::FETCH_BOUND
(int)
PDO::FETCH_COLUMN
(int)
PDO::FETCH_CLASS
(int)
Замечание: Если в классе нет свойства с необходимым именем, будет вызван магический метод __set().
PDO::FETCH_INTO
(int)
PDO::FETCH_FUNC
(int)
PDO::FETCH_GROUP
(int)
PDO::FETCH_COLUMN
или
PDO::FETCH_KEY_PAIR
.
PDO::FETCH_UNIQUE
(int)
PDO::FETCH_KEY_PAIR
(int)
PDO::FETCH_CLASSTYPE
(int)
PDO::FETCH_SERIALIZE
(int)
PDO::FETCH_INTO
, но объект представлен в
виде сериализованной строки. Константа доступна с версии PHP 5.1.0.
С версии PHP 5.3.0 конструктор класса не будет вызван, если этот флаг установлен.
PDO::FETCH_PROPS_LATE
(int)
PDO::ATTR_AUTOCOMMIT
(int)
false
, PDO попытается отключить автоматическую фиксацию
изменений в базе данных, таким образом началом транзакции будет установление
соединения.
PDO::ATTR_PREFETCH
(int)
PDO::ATTR_TIMEOUT
(int)
PDO::ATTR_ERRMODE
(int)
PDO::ATTR_SERVER_VERSION
(int)
PDO::ATTR_CLIENT_VERSION
(int)
PDO::ATTR_SERVER_INFO
(int)
PDO::ATTR_CONNECTION_STATUS
(int)
PDO::ATTR_CASE
(int)
PDO::CASE_*
.
PDO::ATTR_CURSOR_NAME
(int)
PDO::ATTR_CURSOR
(int)
PDO::CURSOR_FWDONLY
и
PDO::CURSOR_SCROLL
. Если вы не уверены, что вам нужен
именно прокручиваемый курсор, выбирайте
PDO::CURSOR_FWDONLY
.
PDO::ATTR_DRIVER_NAME
(string)
Пример #1 Пример использования PDO::ATTR_DRIVER_NAME
<?php
if ($db->getAttribute(PDO::ATTR_DRIVER_NAME) == 'mysql') {
echo "Работаем с mysql; делаем что-то специфичное для mysql\n";
}
?>
PDO::ATTR_ORACLE_NULLS
(int)
PDO::ATTR_PERSISTENT
(mixed)
PDO::ATTR_STATEMENT_CLASS
(int)
PDO::ATTR_FETCH_CATALOG_NAMES
(int)
PDO::ATTR_FETCH_TABLE_NAMES
(int)
PDO::ATTR_STRINGIFY_FETCHES
(int)
PDO::ATTR_MAX_COLUMN_LEN
(int)
PDO::ATTR_DEFAULT_FETCH_MODE
(int)
PDO::ATTR_EMULATE_PREPARES
(int)
PDO::ATTR_DEFAULT_STR_PARAM
(int)
PDO::PARAM_STR_NATL
или PDO::PARAM_STR_CHAR
.
Константа доступна с версии PHP 7.2.0.
PDO::ERRMODE_SILENT
(int)
PDO::ERRMODE_WARNING
(int)
E_WARNING
. Подробнее об этом атрибуте см. в разделе
Ошибки и их обработка.
PDO::ERRMODE_EXCEPTION
(int)
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::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)
PDO::CURSOR_SCROLL
(int)
PDO::FETCH_ORI_*
позволяет задать режим работы курсора,
то, как будут выбираться строки из результирующего набора запроса.
PDO::ERR_NONE
(string)
PDO::PARAM_EVT_ALLOC
(int)
PDO::PARAM_EVT_FREE
(int)
PDO::PARAM_EVT_EXEC_PRE
(int)
PDO::PARAM_EVT_EXEC_POST
(int)
PDO::PARAM_EVT_FETCH_PRE
(int)
PDO::PARAM_EVT_FETCH_POST
(int)
PDO::PARAM_EVT_NORMALIZE
(int)
PDO::SQLITE_DETERMINISTIC
(int)
It should be noted that PDO::FETCH_CLASS will call the constructor *after* setting the values (or calling __set).
When you use REAL type column on SQLite, your setting of pdo parameter of bindValue() is PDO::PARAM_STR.
'''
$stmt->bindValue(':elapse_time', $e_time, PDO::PARAM_STR);
'''
Default value for \PDO::ATTR_TIMEOUT is 30 seconds.
Ref.: https://github.com/php/php-src/blob/PHP-7.1.0/ext/pdo_mysql/mysql_driver.c#L600