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