Constantes pré-définies

Sommaire

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

Curseur

Voir aussi PDO::ATTR_CURSOR_NAME.

PDO::FETCH_ORI_NEXT (int)
RécupÚre la ligne suivante dans le jeu de résultats. Valide uniquement pour les curseurs défilables.
PDO::FETCH_ORI_PRIOR (int)
RécupÚre la ligne précédente dans le jeu de résultats. Valide uniquement pour les curseurs défilables.
PDO::FETCH_ORI_FIRST (int)
RécupÚre la premiÚre ligne dans le jeu de résultats. Valide uniquement pour les curseurs défilables.
PDO::FETCH_ORI_LAST (int)
RécupÚre la derniÚre ligne dans le jeu de résultats. Valide uniquement pour les curseurs défilables.
PDO::FETCH_ORI_ABS (int)
RécupÚre la ligne demandée par numéro de ligne dans le jeu de résultats. Valide uniquement pour les curseurs défilables.
PDO::FETCH_ORI_REL (int)
RécupÚre la ligne demandée par position relative par rapport à la position actuelle du curseur dans le jeu de résultats. Valide uniquement pour les curseurs défilables.
PDO::CURSOR_FWDONLY (int)
Crée un objet PDOStatement avec un curseur à sens unique. C'est le choix de curseur par défaut, car c'est le modÚle d'accÚs aux données le plus rapide et le plus courant en PHP.
PDO::CURSOR_SCROLL (int)
Crée un objet PDOStatement avec un curseur défilable. Passez les constantes PDO::FETCH_ORI_* pour contrÎler les lignes récupérées du jeu de résultats.

Autre constante

PDO::PARAM_BOOL (int)
Représente un type de données booléen.
PDO::PARAM_NULL (int)
Représente le type de données SQL NULL.
PDO::PARAM_INT (int)
Représente le type de données SQL INTEGER.
PDO::PARAM_STR (int)
Représente le type de données SQL CHAR, VARCHAR ou tout autre type de données de chaßne de caractÚres.
PDO::PARAM_STR_NATL (int)
Drapeau pour indiquer qu'une chaĂźne utilise le jeu de caractĂšres national. Disponible Ă  partir de PHP 7.2.0
PDO::PARAM_STR_CHAR (int)
Drapeau pour indiquer qu'une chaßne utilise le jeu de caractÚres régulier. Disponible à partir de PHP 7.2.0
PDO::PARAM_LOB (int)
Représente le type de données SQL large object.
PDO::PARAM_STMT (int)
Représente un type de jeu d'enregistrements (recordset). Actuellement, aucun pilote ne prend en charge ce type.
PDO::PARAM_INPUT_OUTPUT (int)
SpĂ©cifie que le paramĂštre est un paramĂštre INOUT pour une procĂ©dure stockĂ©e. Cette constante doit ĂȘtre utilisĂ©e avec un opĂ©rateur OU bit Ă  bit avec des constantes PDO::PARAM_*.
PDO::ATTR_AUTOCOMMIT (bool)
Si cette valeur est false, PDO tente de dĂ©sactiver l'autocommit afin que la connexion commence une transaction. À partir de PHP 8.4.0, cette constante est de type bool ; elle Ă©tait auparavant de type int.
PDO::ATTR_PREFETCH (int)
Définit la taille de prélecture permet de trouver un équilibre entre la vitesse et l'utilisation de la mémoire pour l'application. Toutes les combinaisons de bases de données/pilotes ne prennent pas en charge la définition de la taille de prélecture. Une taille de prélecture plus grande entraßne une augmentation des performances au prix d'une utilisation de la mémoire plus élevée.
PDO::ATTR_TIMEOUT (int)
Définit la valeur du délai d'attente en secondes pour les communications avec la base de données.
PDO::ATTR_ERRMODE (int)
Voir la section sur les erreurs et la gestion des erreurs pour plus d'informations sur cet attribut.
PDO::ATTR_SERVER_VERSION (int)
Cette valeur est en lecture seule ; elle renverra des informations sur la version du serveur de base de données auquel PDO est connecté.
PDO::ATTR_CLIENT_VERSION (int)
Cette valeur est en lecture seule ; elle renverra des informations sur la version des bibliothÚques clientes utilisées par le pilote PDO.
PDO::ATTR_SERVER_INFO (int)
Cette valeur est en lecture seule ; elle renverra des informations sur la version du serveur de base de données auquel PDO est connecté.
PDO::ATTR_CONNECTION_STATUS (int)
PDO::ATTR_CASE (int)
Force les noms de colonnes à une casse spécifique, comme spécifié par les constantes PDO::CASE_*.
PDO::ATTR_CURSOR_NAME (int)
Obtenir ou définir le nom à utiliser pour un curseur. Le plus utile lors de l'utilisation de curseurs défilables et de mises à jour positionnées.
PDO::ATTR_CURSOR (int)
SĂ©lectionne le type de curseur. PDO prend actuellement en charge soit PDO::CURSOR_FWDONLY soit PDO::CURSOR_SCROLL. À moins d'avoir besoin de curseurs dĂ©filables, il convient d'utiliser le mode de curseur PDO::CURSOR_FWDONLY.
PDO::ATTR_DRIVER_NAME (int)
Renvoie le nom du pilote.

Exemple #1 Utilisation de PDO::ATTR_DRIVER_NAME

<?php
if ($db->getAttribute(PDO::ATTR_DRIVER_NAME) == 'mysql') {
echo
"Running on mysql; doing something mysql specific here\n";
}
?>
PDO::ATTR_ORACLE_NULLS (int)
Convertit les chaßnes vides en valeurs NULL SQL lors des récupérations de données.
PDO::ATTR_PERSISTENT (int)
Demande une connexion persistante, plutÎt que de créer une nouvelle connexion. Voir connections et gestion des connexions pour plus d'informations sur cet attribut.
PDO::ATTR_STATEMENT_CLASS (int)
Définit le nom de la classe des déclarations retournées.
PDO::ATTR_FETCH_CATALOG_NAMES (int)
Ajoute le nom du catalogue contenant chaque nom de colonne renvoyĂ© dans le jeu de rĂ©sultats. Le nom du catalogue et le nom de la colonne sont sĂ©parĂ©s par un caractĂšre dĂ©cimal (.). La prise en charge de cet attribut se fait au niveau du pilote ; il peut ne pas ĂȘtre pris en charge par le pilote.
PDO::ATTR_FETCH_TABLE_NAMES (int)
Ajoute le nom de la table contenant chaque nom de colonne renvoyĂ© dans le jeu de rĂ©sultats. Le nom de la table et le nom de la colonne sont sĂ©parĂ©s par un caractĂšre dĂ©cimal (.). La prise en charge de cet attribut se fait au niveau du pilote ; il peut ne pas ĂȘtre pris en charge par le pilote utilisĂ©.
PDO::ATTR_STRINGIFY_FETCHES (int)
Force toutes les valeurs rĂ©cupĂ©rĂ©es (sauf null) Ă  ĂȘtre traitĂ©es comme des chaĂźnes. Les valeurs null restent inchangĂ©es Ă  moins que PDO::ATTR_ORACLE_NULLS ne soit dĂ©fini sur PDO::NULL_TO_STRING.
PDO::ATTR_MAX_COLUMN_LEN (int)
Définit la longueur maximale des noms de colonnes.
PDO::ATTR_DEFAULT_FETCH_MODE (int)
PDO::ATTR_EMULATE_PREPARES (bool)
Active ou dĂ©sactive l'Ă©mulation des requĂȘtes prĂ©parĂ©es. Certains pilotes ne supportent pas les requĂȘtes prĂ©parĂ©es natives ou n'ont qu'un support limitĂ© de celles-ci. Lorsqu'elle vaut true, PDO Ă©mule toujours les requĂȘtes prĂ©parĂ©es ; lorsqu'elle vaut false, il utilise les requĂȘtes prĂ©parĂ©es natives du pilote. À partir de PHP 8.4.0, cette constante est de type bool ; elle Ă©tait auparavant de type int.
PDO::ATTR_DEFAULT_STR_PARAM (int)
DĂ©finit le type de paramĂštre de chaĂźne par dĂ©faut, cela peut ĂȘtre l'un de PDO::PARAM_STR_NATL et PDO::PARAM_STR_CHAR. Disponible Ă  partir de PHP 7.2.0.
PDO::ERRMODE_SILENT (int)
Ne pas lever d'erreur ou d'exception si une erreur se produit. Le développeur est censé vérifier explicitement les erreurs. Avant PHP 8.0.0, ceci est le mode par défaut. Voir erreur et gestion des erreurs pour plus d'informations sur cet attribut.
PDO::ERRMODE_WARNING (int)
Émet un message PHP E_WARNING si une erreur se produit. Voir erreur et gestion des erreurs pour plus d'informations sur cet attribut.
PDO::ERRMODE_EXCEPTION (int)
LÚve une PDOException si une erreur se produit. Ceci est le mode par défaut à partir de PHP 8.0.0. Voir erreur et gestion des erreurs pour plus d'informations sur cet attribut.
PDO::CASE_NATURAL (int)
Laisser les noms de colonnes tels que retournés par le pilote de base de données.
PDO::CASE_LOWER (int)
Force les noms de colonnes Ă  ĂȘtre en minuscules.
PDO::CASE_UPPER (int)
Force les noms de colonnes Ă  ĂȘtre en majuscules.
PDO::NULL_NATURAL (int)
PDO::NULL_EMPTY_STRING (int)
PDO::NULL_TO_STRING (int)
PDO::ERR_NONE (string)
Correspond à SQLSTATE '00000', ce qui signifie que l'instruction SQL a été émise avec succÚs sans erreurs ni avertissements. Cette constante est pour la commodité lors de la vérification de PDO::errorCode() ou PDOStatement::errorCode() pour déterminer si une erreur s'est produite. On saura généralement si c'est le cas en examinant le code de retour de la méthode qui a déclenché la condition d'erreur de toute façon.
PDO::PARAM_EVT_ALLOC (int)
ÉvĂ©nement d'allocation.
PDO::PARAM_EVT_FREE (int)
ÉvĂ©nement de dĂ©sallocation.
PDO::PARAM_EVT_EXEC_PRE (int)
ÉvĂ©nement dĂ©clenchĂ© avant l'exĂ©cution d'une instruction prĂ©parĂ©e.
PDO::PARAM_EVT_EXEC_POST (int)
ÉvĂ©nement dĂ©clenchĂ© aprĂšs l'exĂ©cution d'une instruction prĂ©parĂ©e.
PDO::PARAM_EVT_FETCH_PRE (int)
ÉvĂ©nement dĂ©clenchĂ© avant la rĂ©cupĂ©ration d'un rĂ©sultat d'un ensemble de rĂ©sultats.
PDO::PARAM_EVT_FETCH_POST (int)
ÉvĂ©nement dĂ©clenchĂ© aprĂšs la rĂ©cupĂ©ration d'un rĂ©sultat d'un ensemble de rĂ©sultats.
PDO::PARAM_EVT_NORMALIZE (int)
ÉvĂ©nement dĂ©clenchĂ© lors de l'enregistrement d'un paramĂštre liĂ© permettant au pilote de normaliser le nom du paramĂštre.
PDO::SQLITE_DETERMINISTIC (int)
SpĂ©cifie qu'une fonction créée avec PDO::sqliteCreateFunction() est dĂ©terministe, c'est-Ă -dire qu'elle renvoie toujours le mĂȘme rĂ©sultat donnĂ© les mĂȘmes entrĂ©es dans une seule instruction SQL. (Disponible Ă  partir de PHP 7.1.4.)
add a note

User Contributed Notes 6 notes

up
19
sam at xnet dot tk ¶
13 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
3
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
happy dot job7348 at fastmail dot com ¶
2 years 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
0
todd at toddwiggins dot com dot au ¶
6 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.