Compartir vía


PDOStatement::setAttribute

Descargar controlador PHP

Establece un valor de atributo, o un atributo PDO predefinido o un controlador personalizado.

Sintaxis

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

Parámetros

$attribute: entero; una de las constantes PDO::ATTR_* o PDO::SQLSRV_ATTR_*. Consulte la sección Comentarios para obtener la lista de atributos disponibles.

$value: el valor (mixto) que se establecerá para el parámetro $attribute especificado.

Valor devuelto

Se devuelve True si se ejecuta correctamente; de lo contrario, se devuelve False.

Observaciones

En la tabla siguiente se incluye la lista de atributos disponibles.

Atributo Valores Descripción
PDO::SQLSRV_ATTR_CLIENT_BUFFER_MAX_KB_SIZE 1 para el límite de memoria PHP. Configura el tamaño de búfer que contiene el conjunto de resultados de un cursor de cliente.

El valor predeterminado es 10 240 KB (10 MB).

Para más información sobre los cursores de cliente, consulte Tipos de cursor (controlador PDO_SQLSRV).
PDO::SQLSRV_ATTR_DATA_CLASSIFICATION true o false Especifica si se deben recuperar los metadatos de clasificación de datos al llamar a PDOStatement::getColumnMeta. El valor predeterminado es false.
PDO::SQLSRV_ATTR_DECIMAL_PLACES Un entero comprendido entre 0 y 4, ambos incluidos Especifica el número de lugares decimales al dar formato a los valores de moneda obtenidos.

Se omitirá cualquier entero negativo o un valor mayor que 4.

Esta opción solo funciona si PDO::SQLSRV_ATTR_FORMAT_DECIMALS es true.

Esta opción también se puede establecer en el nivel de conexión. Si es así, esta opción invalida la opción de nivel de conexión.

Para más información, vea Aplicación de formato a cadenas decimales y valores de moneda (controlador PDO_SQLSRV).
PDO::SQLSRV_ATTR_ENCODING Entero

PDO::SQLSRV_ENCODING_UTF8 (valor predeterminado)

PDO::SQLSRV_ENCODING_SYSTEM

PDO::SQLSRV_ENCODING_BINARY
Establece el juego de caracteres que utiliza el controlador para comunicarse con el servidor.
PDO::SQLSRV_ATTR_FETCHES_DATETIME_TYPE true o false Especifica si debe recuperar tipos de fecha y hora como objetos PHP DateTime. Si el valor se deja como false, el comportamiento predeterminado es devolverlos como cadenas.

Esta opción también se puede establecer en el nivel de conexión. Si es así, esta opción invalida la opción de nivel de conexión.

Para más información, vea: Cómo: Recuperación de los tipos de fecha y hora como objetos de fecha y hora PHP mediante el controlador PDO_SQLSRV.
PDO::SQLSRV_ATTR_FETCHES_NUMERIC_TYPE true o false Controla los resultados numéricos de las columnas con los tipos SQL numéricos (bit, integer, smallint, tinyint, float o real).

Cuando la marca de la opción de conexión ATTR_STRINGIFY_FETCHES está activada, el valor devuelto es una cadena incluso cuando SQLSRV_ATTR_FETCHES_NUMERIC_TYPE está activado.

Cuando el tipo devuelto de PDO en la columna de enlace es PDO_PARAM_INT, el valor devuelto de una columna de enteros es un valor int aunque SQLSRV_ATTR_FETCHES_NUMERIC_TYPE esté desactivado.
PDO::SQLSRV_ATTR_FORMAT_DECIMALS true o false Especifica si se agregan ceros iniciales a las cadenas decimales cuando proceda. Si se establece, esta opción habilita la opción de PDO::SQLSRV_ATTR_DECIMAL_PLACES para aplicar formato a los tipos de divisa. Si el valor se deja como false, se usa el comportamiento predeterminado de devolver la precisión exacta y omitir los ceros iniciales de los valores menores que 1.

Esta opción también se puede establecer en el nivel de conexión. Si es así, esta opción invalida la opción de nivel de conexión.

Para más información, vea Aplicación de formato a cadenas decimales y valores de moneda (controlador PDO_SQLSRV).
PDO::SQLSRV_ATTR_QUERY_TIMEOUT Entero Establece el tiempo de espera de consulta en segundos.

De manera predeterminada, el controlador esperará indefinidamente para obtener resultados. No se permiten números negativos.

0 significa sin tiempo de espera.

Ejemplo

<?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 también

Clase PDOStatement

PDO