PDOStatement::setAttribute
Define um valor de atributo, seja um atributo de PDO preestabelecido ou um atributo de driver personalizado.
Sintaxe
bool PDOStatement::setAttribute ($attribute, $value );
Parâmetros
$attribute: um inteiro, uma das constantes PDO::ATTR_* ou PDO::SQLSRV_ATTR_*. Consulte a seção Comentários para obter uma lista de atributos disponíveis.
$value: o valor (misto) a ser definido para o $attribute especificado.
Valor de retorno
TRUE se for bem-sucedido; caso contrário, FALSE.
Comentários
A tabela a seguir contém a lista dos atributos disponíveis:
Atributo | Valores | Descrição |
---|---|---|
PDO::SQLSRV_ATTR_CLIENT_BUFFER_MAX_KB_SIZE | 1 para o limite de memória do PHP. | Configura o tamanho do buffer que contém o conjunto de resultados de um cursor do lado do cliente. O padrão é 10.240 KB (10 MB). Para obter mais informações sobre os cursores do lado do cliente, confira Tipos de cursor (Driver PDO_SQLSRV). |
PDO::SQLSRV_ATTR_DATA_CLASSIFICATION | true ou false | Especifica se os metadados de classificação de dados devem ser recuperados ao chamar PDOStatement::getColumnMeta. O padrão é falso. |
PDO::SQLSRV_ATTR_DECIMAL_PLACES | Um inteiro entre 0 e 4 (inclusive) | Especifica o número de casas decimais ao formatar valores monetários buscados. Qualquer inteiro negativo ou um valor maior que 4 será ignorado. Esta opção só funciona quando PDO::SQLSRV_ATTR_FORMAT_DECIMALS é verdadeiro. Esta opção também pode ser definida no nível de conexão. Nesse caso, esta opção substitui a opção de nível de conexão. Para saber mais, confira Formatação de cadeias de caracteres decimais e valores monetários (driver PDO_SQLSRV) . |
PDO::SQLSRV_ATTR_ENCODING | Integer PDO::SQLSRV_ENCODING_UTF8 (padrão) PDO::SQLSRV_ENCODING_SYSTEM PDO::SQLSRV_ENCODING_BINARY |
Define a codificação do conjunto de caracteres a ser usada pelo driver para se comunicar com o servidor. |
PDO::SQLSRV_ATTR_FETCHES_DATETIME_TYPE | true ou false | Especifica quando recuperar tipos de data e hora como objetos de DateTime PHP. Se for deixado como false, o comportamento padrão é retorná-los como cadeias de caracteres. Esta opção também pode ser definida no nível de conexão. Nesse caso, esta opção substitui a opção de nível de conexão. Para obter mais informações, confira Como recuperar tipos de data e hora como objetos DateTime PHP usando o driver PDO_SQLSRV. |
PDO::SQLSRV_ATTR_FETCHES_NUMERIC_TYPE | true ou false | Lida com buscas numéricas de colunas com tipos numéricos do SQL (bit, inteiro, smallint, tinyint, float ou real). Quando o sinalizador de opção de conexão ATTR_STRINGIFY_FETCHES está ativado, o valor de retorno é uma cadeia de caracteres, mesmo quando SQLSRV_ATTR_FETCHES_NUMERIC_TYPE estiver ativado. Quando o tipo PDO retornado na coluna de associação for PDO_PARAM_INT, o valor de retorno de uma coluna de números inteiros é int, mesmo se SQLSRV_ATTR_FETCHES_NUMERIC_TYPE estiver desativado. |
PDO::SQLSRV_ATTR_FORMAT_DECIMALS | true ou false | Especifica quando é apropriado adicionar zeros à esquerda em cadeias de caracteres decimais. Se definida, essa opção habilita a opção PDO::SQLSRV_ATTR_DECIMAL_PLACES para formatação de tipos de moedas. Se for deixado como false, será usado o comportamento padrão de retornar a precisão exata e omitir zeros para valores menores do que 1. Esta opção também pode ser definida no nível de conexão. Nesse caso, esta opção substitui a opção de nível de conexão. Para saber mais, confira Formatação de cadeias de caracteres decimais e valores monetários (driver PDO_SQLSRV) . |
PDO::SQLSRV_ATTR_QUERY_TIMEOUT | Integer | Define o tempo limite da consulta em segundos. Por padrão, o driver aguardará resultados indefinidamente. Números negativos não são permitidos. 0 significa “sem tempo limite”. |
Exemplo
<?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" ) );
?>