PHP 8.5.0 RC4 available for testing

Constantes predefinidas

Tabla de contenidos

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.

Cursores

Véase también PDO::ATTR_CURSOR_NAME.

PDO::FETCH_ORI_NEXT (int)
Recupera la próxima línea de un conjunto de resultados. Válido solo para los cursores desplazables.
PDO::FETCH_ORI_PRIOR (int)
Recupera la línea anterior de un conjunto de resultados. Válido solo para los cursores desplazables.
PDO::FETCH_ORI_FIRST (int)
Recupera la primera línea de un conjunto de resultados. Válido solo para los cursores desplazables.
PDO::FETCH_ORI_LAST (int)
Recupera la última línea de un conjunto 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 conjunto 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 conjunto 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 el patrón de acceso a datos más rápido y común en PHP.
PDO::CURSOR_SCROLL (int)
Crea un objeto PDOStatement con un cursor desplazable. Pasa la constante PDO::FETCH_ORI_* para controlar las líneas recuperadas del conjunto de resultados.

Otras Constantes

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 desde PHP 7.2.0
PDO::PARAM_STR_CHAR (int)
Indicador para designar un string que utiliza el juego de caracteres normal. Disponible desde PHP 7.2.0
PDO::PARAM_LOB (int)
Representa el tipo de datos "objeto grande" SQL.
PDO::PARAM_STMT (int)
Representa un tipo de conjunto de resultados. Actualmente no es soportado por ningún controlador.
PDO::PARAM_INPUT_OUTPUT (int)
Especifica que el argumento es un argumento INOUT para un procedimiento almacenado. Debe utilizarse el operador OR a nivel de bits con un tipo de datos explícito PDO::PARAM_*.
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 conjunto de resultados. El catálogo de nombres y los nombres de columnas están separados por un punto (.). El soporte de este atributo es a nivel de controlador; 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 conjunto de resultados. La tabla de nombres y los nombres de columnas están separados por un punto (.). El soporte de este atributo es a nivel de controlador; 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::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)
Evento desencadenado antes de la ejecución de una sentencia preparada.
PDO::PARAM_EVT_EXEC_POST (int)
Evento desencadenado tras la ejecución de una sentencia preparada.
PDO::PARAM_EVT_FETCH_PRE (int)
Evento desencadenado antes de recuperar un resultado de un conjunto de resultados.
PDO::PARAM_EVT_FETCH_POST (int)
Evento desencadenado tras recuperar un resultado de un conjunto de resultados.
PDO::PARAM_EVT_NORMALIZE (int)
Evento activado durante el registro de parámetros vinculados permitiendo al controlador normalizar el nombre del parámetro.
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
20
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
6 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
9
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
1
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.
up
2
Sbastien
5 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
1
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.
To Top