Поделиться через


PDOStatement::setAttribute

Скачать драйвер PHP

Задает значение атрибута — либо предопределенный атрибута PDO, либо пользовательский атрибут драйвера.

Синтаксис

bool PDOStatement::setAttribute ($attribute, $value );  

Параметры

$attribute: целое число, одна из констант PDO::ATTR_* или PDO::SQLSRV_ATTR_*. Список доступных атрибутов см. в разделе "Примечания".

$value: значение (смешанное), задаваемое для указанного $attribute.

Возвращаемое значение

Значение TRUE в случае успеха, в противном случае — значение FALSE.

Remarks

Следующая таблица содержит список доступных атрибутов.

attribute Значения Описание
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 с помощью драйвера 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" ) );  
?>  

См. также:

Класс PDOStatement

PDO