PDOStatement::setAttribute

Baixar o driver PHP

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" ) );  
?>  

Consulte Também

PDOStatement Class

PDO