PHP 8.3.4 Released!

Constantes pré-définies

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.

PDO::PARAM_BOOL (int)
Représente le type de données booléen.
PDO::PARAM_NULL (int)
Représente le type de données NULL SQL.
PDO::PARAM_INT (int)
Représente le type de données INTEGER SQL.
PDO::PARAM_STR (int)
Représente les types de données CHAR, VARCHAR ou les autres types de données sous forme de chaîne de caractères SQL.
PDO::PARAM_STR_NATL (int)
Indicateur pour désigner une chaîne utilise le jeu de caractères national. Disponible à partir de PHP 7.2.0
PDO::PARAM_STR_CHAR (int)
Indicateur pour désigner une chaîne utilise le jeu de caractères normal. Disponible à partir de PHP 7.2.0
PDO::PARAM_LOB (int)
Représente le type de données "objet large" SQL.
PDO::PARAM_STMT (int)
Représente un type de jeu de résultats. N'est actuellement pas pris en charge par tous les pilotes.
PDO::PARAM_INPUT_OUTPUT (int)
Spécifie que le paramètre est un paramètre INOUT pour une procédure stockée. Vous devez utiliser l'opérateur OR avec un type de données explicite PDO::PARAM_*.
PDO::FETCH_DEFAULT (int)
Spécifie que le méthode de récupération par défaut doit être utilisé. Disponible à partir de PHP 8.0.7.
PDO::FETCH_LAZY (int)
Spécifie que la méthode de récupération doit retourner chaque ligne en tant qu'objet avec les noms de propriétés correspondant aux noms de colonnes retournés dans le jeu de résultats. PDO::FETCH_LAZY retourne un objet PDORow qui crée les noms de propriété de l'objet au fur et à mesure de leur accès. Pas valide avec PDOStatement::fetchAll().
PDO::FETCH_ASSOC (int)
Spécifie que la méthode de récupération doit retourner chaque ligne dans un tableau indexé par les noms des colonnes comme elles sont retournées dans le jeu de résultats correspondant. Si le jeu de résultats contient de multiples colonnes avec le même nom, PDO::FETCH_ASSOC retourne une seule valeur par nom de colonne.
PDO::FETCH_NAMED (int)
Spécifie que la méthode de récupération doit retourner chaque ligne dans un tableau indexé par les noms des colonnes comme elles sont retournées dans le jeu de résultats correspondant. Si le jeu de résultats contient de multiples colonnes avec le même nom, PDO::FETCH_NAMED retourne un tableau de valeurs par nom de colonne.
PDO::FETCH_NUM (int)
Spécifie que la méthode de récupération doit retourner chaque ligne dans un tableau indexé par le numéro des colonnes comme elles sont retournées dans le jeu de résultats correspondant, en commençant à 0.
PDO::FETCH_BOTH (int)
Spécifie que la méthode de récupération doit retourner chaque ligne dans un tableau indexé par les noms des colonnes ainsi que leurs numéros, comme elles sont retournées dans le jeu de résultats correspondant, en commençant à 0.
PDO::FETCH_OBJ (int)
Spécifie que la méthode de récupération doit retourner chaque ligne dans un objet avec les noms de propriétés correspondant aux noms des colonnes comme elles sont retournées dans le jeu de résultats.
PDO::FETCH_BOUND (int)
Spécifie que la méthode de récupération doit retourner true et assigner les valeurs des colonnes du jeu de résultats aux variables PHP auxquelles elles sont liées avec la méthode PDOStatement::bindParam() ou la méthode PDOStatement::bindColumn().
PDO::FETCH_COLUMN (int)
Spécifie que la méthode de récupération doit retourner uniquement une seule colonne demandée depuis la prochaine ligne du jeu de résultats.
PDO::FETCH_CLASS (int)
Spécifie que la méthode de récupération doit retourner une nouvelle instance de la classe demandée, liant les colonnes aux membres de la classe.

Note: La méthode magique __set() est appelée si le membre n'existe pas dans la classe utilisée.

PDO::FETCH_INTO (int)
Spécifie que la méthode de récupération doit mettre à jour une instance existante de la classe demandée, liant les colonnes aux propriétés nommées dans la classe.
PDO::FETCH_FUNC (int)
Permet de personnaliser la façon dont sont traitées les données à la volée (uniquement valide dans la méthode PDOStatement::fetchAll()).
PDO::FETCH_GROUP (int)
Groupe le résultat par les valeurs. Habituellement combiné avec PDO::FETCH_COLUMN ou PDO::FETCH_KEY_PAIR.
PDO::FETCH_UNIQUE (int)
Récupère uniquement les valeurs uniques.
PDO::FETCH_KEY_PAIR (int)
Récupère un résultat sur deux colonnes dans un tableau où la première colonne est la clé, et la seconde colonne est la valeur.
PDO::FETCH_CLASSTYPE (int)
Détermine le nom de la classe depuis la valeur de la première colonne.
PDO::FETCH_SERIALIZE (int)
Identique à PDO::FETCH_INTO, mais l'objet est fourni sous la forme d'une chaîne sérialisée. Le constructeur de la classe n'est jamais appelé si ce drapeau est défini. Obsolète à partir de PHP 8.1.0.
PDO::FETCH_PROPS_LATE (int)
Appelle le constructeur avant de définir les propriétés.
PDO::ATTR_AUTOCOMMIT (int)
Si la valeur vaut false, PDO tente de désactiver l'autovalidation lorsque la connexion commence une transaction.
PDO::ATTR_PREFETCH (int)
Définir la taille de la prérécupération vous permet d'accroître les performances de votre application. Toutes les combinaisons bases de données / pilotes ne prennent pas en charge cette fonctionnalité. Ceci accroît les performances au détriment de la consommation de mémoire vive.
PDO::ATTR_TIMEOUT (int)
Définit la valeur 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)
Attribut en lecture seule ; il retourne des informations sur la version de la base de données à laquelle PDO est connecté.
PDO::ATTR_CLIENT_VERSION (int)
Attribut en lecture seule ; il retourne des informations sur la version de la librairie cliente utilisée par PDO.
PDO::ATTR_SERVER_INFO (int)
Attribut en lecture seule ; il retourne quelques méta-informations sur le serveur de base de données auquel PDO est connecté.
PDO::ATTR_CONNECTION_STATUS (int)
PDO::ATTR_CASE (int)
Force les noms des colonnes dans une casse spécifiée par les constantes PDO::CASE_*.
PDO::ATTR_CURSOR_NAME (int)
Récupère ou définit le nom à utiliser pour un curseur. Très utile lors de l'utilisation de curseurs défilables et des mises à jour positionnées.
PDO::ATTR_CURSOR (int)
Sélectionne le type de curseur. PDO supporte actuellement soit PDO::CURSOR_FWDONLY, soit PDO::CURSOR_SCROLL. Conservez PDO::CURSOR_FWDONLY tant que vous savez que vous avez besoin d'un curseur défilable.
PDO::ATTR_DRIVER_NAME (int)
Retourne le nom du pilote.

Exemple #1 Utilisation de PDO::ATTR_DRIVER_NAME

<?php
if ($db->getAttribute(PDO::ATTR_DRIVER_NAME) == 'mysql') {
echo
"Utilisation de mysql ; fait quelque chose de spécifique à mysql ici\n";
}
?>

PDO::ATTR_ORACLE_NULLS (int)
Convertit les chaînes vides en valeurs NULL SQL dans les données récupérées.
PDO::ATTR_PERSISTENT (int)
Demande une connexion persistante, plutôt que de créer une nouvelle connexion. Voir les connexions et le gestionnaire de connexion pour plus d'informations sur cet attribut.
PDO::ATTR_STATEMENT_CLASS (int)
Définit le nom de la classe sous laquelle les données sont retournées.
PDO::ATTR_FETCH_CATALOG_NAMES (int)
Ajoute le contenu du catalogue de noms dans chaque nom de colonne retourné dans le jeu de résultat. Le catalogue de noms et les noms de colonnes sont séparés par un point (.). Le prise en charge de cet attribut n'est faite par tous les pilotes ; il peut ne pas être disponible pour votre pilote.
PDO::ATTR_FETCH_TABLE_NAMES (int)
Ajoute le contenu de la table de noms dans chaque nom de colonne retourné dans le jeu de résultats. La table de noms et les noms de colonnes sont séparés par un point (.). La prise en charge de cet attribut n'est pas faite par tous les pilotes ; il peut ne pas être disponible pour votre pilote.
PDO::ATTR_STRINGIFY_FETCHES (int)
Force toutes les valeurs lues pour être traitées comme des chaînes.
PDO::ATTR_MAX_COLUMN_LEN (int)
Définit la longueur maximale du nom de colonne.
PDO::ATTR_DEFAULT_FETCH_MODE (int)
PDO::ATTR_EMULATE_PREPARES (int)
PDO::ATTR_DEFAULT_STR_PARAM (int)
Définit le type de paramètre de chaîne par défaut, cela peut être PDO::PARAM_STR_NATL ou PDO::PARAM_STR_CHAR. Disponible à partir de PHP 7.2.0.
PDO::ERRMODE_SILENT (int)
N'envoie pas d'erreur ni d'exception si une erreur survient. Le développeur doit explicitement vérifier les erreurs. C'est le mode par défaut. Voir les erreurs et la gestion des erreurs pour plus d'informations sur cet attribut.
PDO::ERRMODE_WARNING (int)
Envoie une erreur de niveau E_WARNING si une erreur survient. Voir les erreurs et la gestion des erreurs pour plus d'informations sur cet attribut.
PDO::ERRMODE_EXCEPTION (int)
Lance une exception PDOException si une erreur survient. Voir les erreurs et la gestion des erreurs pour plus d'informations sur cet attribut.
PDO::CASE_NATURAL (int)
Laisse les noms de colonnes comme retournés par le pilote de base de données.
PDO::CASE_LOWER (int)
Force les noms de colonnes en minuscules.
PDO::CASE_UPPER (int)
Force les noms des colonnes en majuscules.
PDO::NULL_NATURAL (int)
PDO::NULL_EMPTY_STRING (int)
PDO::NULL_TO_STRING (int)
PDO::FETCH_ORI_NEXT (int)
Récupère la prochaine ligne d'un jeu de résultats. Valide seulement pour les curseurs défilables.
PDO::FETCH_ORI_PRIOR (int)
Récupère la ligne précédente d'un jeu de résultats. Valide seulement pour les curseurs défilables.
PDO::FETCH_ORI_FIRST (int)
Récupère la première ligne d'un jeu de résultats. Valide seulement pour les curseurs défilables.
PDO::FETCH_ORI_LAST (int)
Récupère la dernière ligne d'un jeu de résultats. Valide seulement pour les curseurs défilables.
PDO::FETCH_ORI_ABS (int)
Récupère la ligne demandée par un numéro de ligne d'un jeu de résultats. Valide seulement pour les curseurs défilables.
PDO::FETCH_ORI_REL (int)
Récupère la ligne demandée par une position relative à la position courante du curseur d'un jeu de résultats. Valide seulement pour les curseurs défilables.
PDO::CURSOR_FWDONLY (int)
Crée un objet PDOStatement avec un curseur uniquement de retour. C'est le choix par défaut pour le curseur, car il est rapide et l'accès aux données est commun pour les masques en PHP.
PDO::CURSOR_SCROLL (int)
Crée un objet PDOStatement avec un curseur défilable. Passez la constante PDO::FETCH_ORI_* pour contrôler les lignes récupérées du jeu de résultats.
PDO::ERR_NONE (string)
Correspond à SQLSTATE '00000', ce qui signifie que la requête SQL a réussi sans erreur, ni avertissement. Cette constante est utile lorsque vous utilisez PDO::errorCode() ou PDOStatement::errorCode() pour déterminer si une erreur est survenue. Cependant, vous devez déjà savoir si c'est le cas en examinant le code retourné par la méthode qui a lancé l'erreur.
PDO::PARAM_EVT_ALLOC (int)
Alloue un événement
PDO::PARAM_EVT_FREE (int)
Supprime un événement
PDO::PARAM_EVT_EXEC_PRE (int)
Toujours faire un déclencheur avant l'exécution d'une requête préparée.
PDO::PARAM_EVT_EXEC_POST (int)
Toujours effectuer un déclencheur de sous-séquence avant l'exécution d'une requête préparée.
PDO::PARAM_EVT_FETCH_PRE (int)
Toujours effectuer un déclencheur avant de récupérer un résultat d'un jeu de résultats.
PDO::PARAM_EVT_FETCH_POST (int)
Toujours effectuer un déclencheur de sous-séquence avant de récupérer un résultat d'un jeu de résultats.
PDO::PARAM_EVT_NORMALIZE (int)
Toujours effectuer un déclencheur lors de l'enregistrement des paramètres liés permettant au pilote de normaliser le nom des paramètres.
PDO::SQLITE_DETERMINISTIC (int)
Spécifie qu'une fonction créée avec PDO:: PDO::sqliteCreateFunction() est déterministe, c'est-à-dire qu'elle retourne toujours le même résultat en raison des mêmes entrées dans une seule instruction SQL. (Disponible à partir de PHP 7.1.4.)
add a note

User Contributed Notes 8 notes

up
21
sam at xnet dot tk
11 years ago
It should be noted that PDO::FETCH_CLASS will call the constructor *after* setting the values (or calling __set).
up
5
kevin at kevinlocke dot name
4 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
4
todd at toddwiggins dot com dot au
4 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
2
Sbastien
3 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
5
Oleg Andreyev
7 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
0
happy dot job7348 at fastmail dot com
2 months 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
Rexana
1 year ago
Reference for PDO MySQL constants Todd mentioned have moved to here: https://www.php.net/manual/en/ref.pdo-mysql.php

This includes documentation on constants like PDO::MYSQL_ATTR_SSL_CA, PDO::MYSQL_ATTR_SSL_VERIFY_SERVER_CERT, and more.
up
-5
ko dot izawa at gmail dot com
7 years ago
When you use REAL type column on SQLite, your setting of pdo parameter of bindValue() is PDO::PARAM_STR.

'''
$stmt->bindValue(':elapse_time', $e_time, PDO::PARAM_STR);
'''
To Top