PDOStatement::setAttribute
Задает значение атрибута — либо предопределенный атрибута PDO, либо пользовательский атрибут драйвера.
Синтаксис
bool PDOStatement::setAttribute ($attribute, $value );
Параметры
$attribute: целое число, одна из констант PDO::ATTR_* или PDO::SQLSRV_ATTR_*. Список доступных атрибутов см. в разделе "Примечания".
$value: значение (смешанное), задаваемое для указанного $attribute.
Возвращаемое значение
Значение TRUE в случае успеха, в противном случае — значение FALSE.
Замечания
Следующая таблица содержит список доступных атрибутов.
Атрибут | Значения | Description |
---|---|---|
PDO::SQLSRV_ATTR_CLIENT_BUFFER_MAX_KB_SIZE | От 1 до предела памяти PHP. | Задает размер буфера, который содержит результирующий набор для клиентского курсора. Значение по умолчанию — 10 240 КБ (10 МБ). Дополнительные сведения о клиентских курсорах см. в статье Типы курсоров (драйвер PDO_SQLSRV). |
PDO::SQLSRV_ATTR_DATA_CLASSIFICATION | true или false | Позволяет указать, следует ли извлекать метаданные классификации данных при вызове PDOStatement::getColumnMeta. Значение по умолчанию — false. |
PDO::SQLSRV_ATTR_DECIMAL_PLACES | Целое число от 0 до 4 (включительно). | Указывает число десятичных знаков при форматировании полученных денежных значений. Любое отрицательное целое число или значение больше 4 будет игнорироваться. Этот параметр работает, только если для PDO::SQLSRV_ATTR_FORMAT_DECIMALS указано значение true. Этот параметр также можно задать на уровне подключения. Если этот параметр указан, он переопределяет параметр на уровне подключения. См. подробнее о форматировании десятичных строк и денежных значений (драйвер PDO_SQLSRV). |
PDO::SQLSRV_ATTR_ENCODING | Целое PDO::SQLSRV_ENCODING_UTF8 (по умолчанию) PDO::SQLSRV_ENCODING_SYSTEM PDO::SQLSRV_ENCODING_BINARY |
Задает кодировку, используемую драйвером для обмена данными с сервером. |
PDO::SQLSRV_ATTR_FETCHES_DATETIME_TYPE | true или false | Указывает, нужно ли извлекать типы даты и времени в виде объектов PHP DateTime. Если оставить значение false, по умолчанию они будут возвращаться как строки. Этот параметр также можно задать на уровне подключения. Если этот параметр указан, он переопределяет параметр на уровне подключения. См. подробнее об извлечении типов даты и времени в виде объектов PHP DateTime с помощью драйвера PDO_SQLSRV. |
PDO::SQLSRV_ATTR_FETCHES_NUMERIC_TYPE | true или false | Обрабатывает выборку числовых значений из столбцов с числовыми типами SQL (bit, integer, smallint, tinyint, float или real). Если включен флаг параметра подключения ATTR_STRINGIFY_FETCHES, возвращаемое значение является строкой даже при включении SQLSRV_ATTR_FETCHES_NUMERIC_TYPE. Если возвращаемый тип PDO в столбце привязки представляет PDO_PARAM_INT, возвращаемое значение из столбца с целочисленными значениями имеет тип int даже при отключении SQLSRV_ATTR_FETCHES_NUMERIC_TYPE. |
PDO::SQLSRV_ATTR_FORMAT_DECIMALS | true или false | Указывает, нужно ли при необходимости добавлять начальные нули к десятичным строкам. Если этот параметр задан, включается параметр PDO::SQLSRV_ATTR_DECIMAL_PLACES для форматирования типов валюты. Если задано значение false, по умолчанию будут возвращаться точные числа с пропуском начальных нулей для значений меньше 1. Этот параметр также можно задать на уровне подключения. Если этот параметр указан, он переопределяет параметр на уровне подключения. См. подробнее о форматировании десятичных строк и денежных значений (драйвер PDO_SQLSRV). |
PDO::SQLSRV_ATTR_QUERY_TIMEOUT | Целое | Задает время ожидания выполнения запроса в секундах. По умолчанию драйвер ожидает результаты бесконечно. Отрицательные значения не допускаются. 0 означает отсутствие времени ожидания. |
Пример
<?php
$database = "AdventureWorks";
$server = "(local)";
$conn = new PDO( "sqlsrv:server=$server ; Database = $database", "", "", array('MultipleActiveResultSets'=>false ) );
$stmt = $conn->prepare('SELECT * FROM Person.ContactType');
echo $stmt->getAttribute( constant( "PDO::ATTR_CURSOR" ) );
echo "\n";
$stmt->setAttribute(PDO::SQLSRV_ATTR_QUERY_TIMEOUT, 2);
echo $stmt->getAttribute( constant( "PDO::SQLSRV_ATTR_QUERY_TIMEOUT" ) );
?>