PHP 8.5.0 Alpha 2 available for testing

Constantes predefinidas

Estas constantes son definidas por esta extensión, y solo están disponibles si esta extensión ha sido compilada con PHP, o bien cargada en tiempo de ejecución.

PDO::PARAM_BOOL (int)
Representa el tipo de datos booleano.
PDO::PARAM_NULL (int)
Representa el tipo de datos NULL SQL.
PDO::PARAM_INT (int)
Representa el tipo de datos INTEGER SQL.
PDO::PARAM_STR (int)
Representa los tipos de datos CHAR, VARCHAR o los otros tipos de datos en forma de string SQL.
PDO::PARAM_STR_NATL (int)
Indicador para designar un string que utiliza el juego de caracteres nacional. Disponible a partir de PHP 7.2.0
PDO::PARAM_STR_CHAR (int)
Indicador para designar un string que utiliza el juego de caracteres normal. Disponible a partir de PHP 7.2.0
PDO::PARAM_LOB (int)
Representa el tipo de datos "objeto grande" SQL.
PDO::PARAM_STMT (int)
Representa un tipo de juego de resultados. Actualmente no es soportado por todos los controladores.
PDO::PARAM_INPUT_OUTPUT (int)
Especifica que el argumento es un argumento INOUT para un procedimiento almacenado. Debe utilizarse el operador OR con un tipo de datos explícito PDO::PARAM_*.
PDO::FETCH_DEFAULT (int)
Especifica que debe utilizarse el método de recuperación por defecto. Disponible a partir de PHP 8.0.7.
PDO::FETCH_LAZY (int)
Especifica que el método de recuperación debe devolver cada línea como un objeto con los nombres de propiedades correspondientes a los nombres de columnas devueltas en el juego de resultados. PDO::FETCH_LAZY devuelve un objeto PDORow que crea los nombres de propiedad del objeto a medida que se acceden. No es válido con PDOStatement::fetchAll().
PDO::FETCH_ASSOC (int)
Especifica que el método de recuperación debe devolver cada línea en un array indexado por los nombres de las columnas como se devuelven en el juego de resultados correspondiente. Si el juego de resultados contiene múltiples columnas con el mismo nombre, PDO::FETCH_ASSOC devuelve un solo valor por nombre de columna.
PDO::FETCH_NAMED (int)
Especifica que el método de recuperación debe devolver cada línea en un array indexado por los nombres de las columnas como se devuelven en el juego de resultados correspondiente. Si el juego de resultados contiene múltiples columnas con el mismo nombre, PDO::FETCH_NAMED devuelve un array de valores por nombre de columna.
PDO::FETCH_NUM (int)
Especifica que el método de recuperación debe devolver cada línea en un array indexado por el número de las columnas como se devuelven en el juego de resultados correspondiente, comenzando en 0.
PDO::FETCH_BOTH (int)
Especifica que el método de recuperación debe devolver cada línea en un array indexado por los nombres de las columnas así como sus números, como se devuelven en el juego de resultados correspondiente, comenzando en 0.
PDO::FETCH_OBJ (int)
Especifica que el método de recuperación debe devolver cada línea en un objeto con los nombres de propiedades correspondientes a los nombres de las columnas como se devuelven en el juego de resultados.
PDO::FETCH_BOUND (int)
Especifica que el método de recuperación debe devolver true y asignar los valores de las columnas del juego de resultados a las variables PHP a las que están ligadas con el método PDOStatement::bindParam() o el método PDOStatement::bindColumn().
PDO::FETCH_COLUMN (int)
Especifica que el método de recuperación debe devolver únicamente una sola columna solicitada desde la próxima línea del juego de resultados.
PDO::FETCH_CLASS (int)
Especifica que el método de recuperación debe devolver una nueva instancia de la clase solicitada.

Nota: El objeto es inicializado mapeando las columnas del juego de resultados a las propiedades de la clase. Este proceso ocurre antes de que el constructor sea llamado, permitiendo la población de las propiedades, independientemente de su visibilidad o su marcador como readonly. Si una propiedad no existe en la clase, el método mágico __set() será invocado si existe; de lo contrario, se creará una propiedad pública dinámica. Sin embargo, cuando PDO::FETCH_PROPS_LATE también está especificado, el constructor es llamado antes de que las propiedades sean pobladas.

PDO::FETCH_INTO (int)
Especifica que el método de recuperación debe actualizar una instancia existente de la clase solicitada, ligando las columnas a las propiedades nombradas en la clase.
PDO::FETCH_FUNC (int)
Permite personalizar la forma en que se procesan los datos al vuelo (solo válido en el método PDOStatement::fetchAll()).
PDO::FETCH_GROUP (int)
Agrupa el resultado por los valores. Normalmente combinado con PDO::FETCH_COLUMN o PDO::FETCH_KEY_PAIR.
PDO::FETCH_UNIQUE (int)
Recupera únicamente los valores únicos.
PDO::FETCH_KEY_PAIR (int)
Recupera un resultado de dos columnas en un array donde la primera columna es la clave, y la segunda columna es el valor.
PDO::FETCH_CLASSTYPE (int)
Determina el nombre de la clase desde el valor de la primera columna.
PDO::FETCH_SERIALIZE (int)
Idéntico a PDO::FETCH_INTO, pero el objeto es proporcionado en forma de string serializado. El constructor de la clase nunca es llamado si esta bandera está definida. Obsoleto a partir de PHP 8.1.0.
PDO::FETCH_PROPS_LATE (int)
Llama al constructor antes de definir las propiedades.
PDO::ATTR_AUTOCOMMIT (int)
Si el valor es false, PDO intenta desactivar la validación automática cuando la conexión comienza una transacción.
PDO::ATTR_PREFETCH (int)
Definir el tamaño de la prérécuparación permite aumentar el rendimiento de su aplicación. No todas las combinaciones bases de datos / controladores soportan esta funcionalidad. Esto aumenta el rendimiento a costa del consumo de memoria.
PDO::ATTR_TIMEOUT (int)
Define el valor de espera en segundos para las comunicaciones con la base de datos.
PDO::ATTR_ERRMODE (int)
Ver la sección sobre los errores y la gestión de errores para más información sobre este atributo.
PDO::ATTR_SERVER_VERSION (int)
Atributo de solo lectura; devuelve información sobre la versión de la base de datos a la que PDO está conectado.
PDO::ATTR_CLIENT_VERSION (int)
Atributo de solo lectura; devuelve información sobre la versión de la biblioteca cliente utilizada por PDO.
PDO::ATTR_SERVER_INFO (int)
Atributo de solo lectura; devuelve algunas meta-informaciones sobre el servidor de base de datos al que PDO está conectado.
PDO::ATTR_CONNECTION_STATUS (int)
PDO::ATTR_CASE (int)
Fuerza los nombres de las columnas en una casilla especificada por las constantes PDO::CASE_*.
PDO::ATTR_CURSOR_NAME (int)
Recupera o define el nombre a utilizar para un cursor. Muy útil al utilizar cursores desplazables y actualizaciones posicionadas.
PDO::ATTR_CURSOR (int)
Selecciona el tipo de cursor. PDO actualmente soporta PDO::CURSOR_FWDONLY o PDO::CURSOR_SCROLL. Mantenga PDO::CURSOR_FWDONLY mientras sepa que necesita un cursor desplazable.
PDO::ATTR_DRIVER_NAME (int)
Devuelve el nombre del controlador.

Ejemplo #1 Uso de PDO::ATTR_DRIVER_NAME

<?php
if ($db->getAttribute(PDO::ATTR_DRIVER_NAME) == 'mysql') {
echo
"Uso de mysql; hacer algo específico de mysql aquí\n";
}
?>

PDO::ATTR_ORACLE_NULLS (int)
Convierte las cadenas vacías en valores NULL SQL en los datos recuperados.
PDO::ATTR_PERSISTENT (int)
Solicita una conexión persistente, en lugar de crear una nueva conexión. Ver las conexiones y el gestor de conexión para más información sobre este atributo.
PDO::ATTR_STATEMENT_CLASS (int)
Define el nombre de la clase bajo la cual los datos son devueltos.
PDO::ATTR_FETCH_CATALOG_NAMES (int)
Añade el contenido del catálogo de nombres en cada nombre de columna devuelto en el juego de resultados. El catálogo de nombres y los nombres de columnas están separados por un punto (.). La soporte de este atributo no es hecho por todos los controladores; puede no estar disponible para su controlador.
PDO::ATTR_FETCH_TABLE_NAMES (int)
Añade el contenido de la tabla de nombres en cada nombre de columna devuelto en el juego de resultados. La tabla de nombres y los nombres de columnas están separados por un punto (.). La soporte de este atributo no es hecho por todos los controladores; puede no estar disponible para su controlador.
PDO::ATTR_STRINGIFY_FETCHES (int)
Fuerza todas las valores recuperados (excepto null) a ser tratados como strings. Los valores null permanecen sin cambios, a menos que PDO::ATTR_ORACLE_NULLS esté definido en PDO::NULL_TO_STRING.
PDO::ATTR_MAX_COLUMN_LEN (int)
Define la longitud máxima del nombre de columna.
PDO::ATTR_DEFAULT_FETCH_MODE (int)
PDO::ATTR_EMULATE_PREPARES (int)
PDO::ATTR_DEFAULT_STR_PARAM (int)
Define el tipo de argumento de string por defecto, esto puede ser PDO::PARAM_STR_NATL o PDO::PARAM_STR_CHAR. Disponible a partir de PHP 7.2.0.
PDO::ERRMODE_SILENT (int)
No envía error ni excepción si ocurre un error. El desarrollador debe verificar explícitamente los errores. Es el modo por defecto. Ver los errores y la gestión de errores para más información sobre este atributo.
PDO::ERRMODE_WARNING (int)
Envía un error de nivel E_WARNING si ocurre un error. Ver los errores y la gestión de errores para más información sobre este atributo.
PDO::ERRMODE_EXCEPTION (int)
Lanza una excepción PDOException si ocurre un error. Ver los errores y la gestión de errores para más información sobre este atributo.
PDO::CASE_NATURAL (int)
Deja los nombres de columnas como se devuelven por el controlador de base de datos.
PDO::CASE_LOWER (int)
Fuerza los nombres de columnas en minúsculas.
PDO::CASE_UPPER (int)
Fuerza los nombres de columnas en mayúsculas.
PDO::NULL_NATURAL (int)
PDO::NULL_EMPTY_STRING (int)
PDO::NULL_TO_STRING (int)
PDO::FETCH_ORI_NEXT (int)
Recupera la próxima línea de un juego de resultados. Válido solo para los cursores desplazables.
PDO::FETCH_ORI_PRIOR (int)
Recupera la línea anterior de un juego de resultados. Válido solo para los cursores desplazables.
PDO::FETCH_ORI_FIRST (int)
Recupera la primera línea de un juego de resultados. Válido solo para los cursores desplazables.
PDO::FETCH_ORI_LAST (int)
Recupera la última línea de un juego de resultados. Válido solo para los cursores desplazables.
PDO::FETCH_ORI_ABS (int)
Recupera la línea solicitada por un número de línea de un juego de resultados. Válido solo para los cursores desplazables.
PDO::FETCH_ORI_REL (int)
Recupera la línea solicitada por una posición relativa a la posición actual del cursor de un juego de resultados. Válido solo para los cursores desplazables.
PDO::CURSOR_FWDONLY (int)
Crea un objeto PDOStatement con un cursor solo de avance. Es la opción por defecto para el cursor, ya que es rápido y el acceso a los datos es común para los mascarones en PHP.
PDO::CURSOR_SCROLL (int)
Crea un objeto PDOStatement con un cursor desplazable. Pase la constante PDO::FETCH_ORI_* para controlar las líneas recuperadas del juego de resultados.
PDO::ERR_NONE (string)
Corresponde a SQLSTATE '00000', lo que significa que la consulta SQL ha tenido éxito sin error ni advertencia. Esta constante es útil cuando se utiliza PDO::errorCode() o PDOStatement::errorCode() para determinar si ha ocurrido un error. Sin embargo, debe saber ya si es así examinando el código devuelto por el método que causó el error.
PDO::PARAM_EVT_ALLOC (int)
Asigna un evento
PDO::PARAM_EVT_FREE (int)
Elimina un evento
PDO::PARAM_EVT_EXEC_PRE (int)
Siempre hacer un disparador antes de la ejecución de una consulta preparada.
PDO::PARAM_EVT_EXEC_POST (int)
Siempre realizar un disparador de subsecuencia antes de la ejecución de una consulta preparada.
PDO::PARAM_EVT_FETCH_PRE (int)
Siempre realizar un disparador antes de recuperar un resultado de un juego de resultados.
PDO::PARAM_EVT_FETCH_POST (int)
Siempre realizar un disparador de subsecuencia antes de recuperar un resultado de un juego de resultados.
PDO::PARAM_EVT_NORMALIZE (int)
Siempre realizar un disparador al registrar los argumentos ligados permitiendo al controlador normalizar el nombre de los argumentos.
PDO::SQLITE_DETERMINISTIC (int)
Especifica que una función creada con PDO::PDO::sqliteCreateFunction() es determinista, es decir, siempre devuelve el mismo resultado por las mismas entradas en una sola instrucción SQL. (Disponible a partir de PHP 7.1.4.)
add a note

User Contributed Notes 6 notes

up
21
sam at xnet dot tk
12 years ago
It should be noted that PDO::FETCH_CLASS will call the constructor *after* setting the values (or calling __set).
up
6
kevin at kevinlocke dot name
5 years ago
PDO::PARAM_STR_CHAR and PDO::PARAM_STR_NATL must be combined with PDO::PARAM_STR using bitwise-OR for parameter binding.

These flags control value quoting (e.g. PDO::quote) and, in some situations (see below), parameter binding (e.g. PDO::bindParam, PDO::bindValue) to prefix string literals with N'' as defined in SQL-92. As of PHP 7.3, only dblib and mysql support these flags. For the mysql driver, the flags only affect parameter binding when PDO::ATTR_EMULATE_PREPARES is true (the default).

MySQL and MariaDB interpret string literals prefixed with N as being utf8 (not utf8mb4) regardless of `SET NAMES` or the charset parameter. This can cause problems if the database/table/column charset is not utf8. For example, in a database using utf8mb4, the query "SELECT * FROM table WHERE col = :param" and bindValue(":param", "\u{1F600}", PDO::PARAM_STR | PDO::PARAM_STR_NATL) will cause "PDOException: SQLSTATE[HY000]: General error: 1267 Illegal mix of collations (utf8mb4_general_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation '='". Using PDO::PARAM_STR without PDO::PARAM_STR_NATL and ensuring the charset DSN parameter is set correctly can avoid this issue.

See:
https://wiki.php.net/rfc/extended-string-types-for-pdo
https://mariadb.com/kb/en/library/string-literals/
https://dev.mysql.com/doc/refman/8.0/en/string-literals.html
up
7
Oleg Andreyev
9 years ago
Default value for \PDO::ATTR_TIMEOUT is 30 seconds.
Ref.: https://github.com/php/php-src/blob/PHP-7.1.0/ext/pdo_mysql/mysql_driver.c#L600
up
3
Sbastien
4 years ago
PDO::FETCH_UNIQUE not only fetches the unique values, it also uses the first SQL column as array key result, what is very useful for create quickly an index, eg :

<?php

$sql
= <<<SQL
SELECT ALL
c1, -- For result indexing
c1, c2
FROM (
VALUES
ROW('ID-1', 'Value 1'),
ROW('ID-2', 'Value 2a'),
ROW('ID-2', 'Value 2b'),
ROW('ID-3', 'Value 3')
) AS t (c1, c2);
SQL;
$result = $pdo->query($sql);
print_r($result->fetchAll(PDO::FETCH_UNIQUE));

/*
Gives :
ID-1 => [c1 => ID-1, c2 => Value 1]
ID-2 => [c1 => ID-2b, c2 => Value 2b]
ID-3 => [c1 => ID-3, c2 => Value 3]
*/

?>
up
3
todd at toddwiggins dot com dot au
5 years ago
Reference to all the PDO::MYSQL_* constants is available in MySQL's documentation for the driver here: https://dev.mysql.com/doc/connectors/en/apis-php-pdo-mysql.html

Such as the ones I was looking for PDO::MYSQL_ATTR_SSL_CA and PDO::MYSQL_ATTR_SSL_CAPATH which are not listed on this page.
up
0
happy dot job7348 at fastmail dot com
1 year ago
To bind a float, use PDO::PARAM_STR with bindValue. You can skip the PDO::PARAM_STR because it's the default option. Binding with bindParam will change the type of the bound variable to a string, which can lead to type errors.
To Top