XCVIII. Fonctions PDO

Introduction

Avertissement

Ce module est EXPERIMENTAL. Cela signifie que le comportement de ces fonctions, leurs noms et concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS! Soyez-en conscient, et utilisez ce module à vos risques et périls.

L'extension PHP Data Objects (PDO) défint une excellente interface pour accéder à une base de données depuis PHP. Chaque pilote de base de données implémenté dans l'interface PDO peut utiliser des fonctionnalités spécifiques à chaque des bases de données en utilisant des extensions de fonctions. Notez que vous ne pouvez exécuter aucune fonction de base de données en utilisant l'extension PDO par elle-même ; vous devez utiliser un driver PDO spécifique à la base de données pour accéder au serveur de base de données.

Installation

PDO est actuellement disponible en tant qu'extension PECL disponible sur http://pecl.php.net/package/pdo. Assurez-vous d'avoir installé la version CGI de PHP et que les scripts pear et phpize sont disponibles dans votre path courant.

Exéutez la commande suivante pour télécharger, construire et installer la dernière version stable de PDO :
pear install pdo

Les utilisateurs de Windows peuvent télécharger la bibliothèque DLL pdo.dll en tant que partie de la collection PECL sur http://www.php.net/downloads.php.

La commande pear installe automatiquement le module PDO dans votre dossier d'extensions PHP. Pour activer l'extension PDO sous les systèmes Unix ou Linux, vous devez ajouter la ligne suivante dans votre php.ini :
extension=php_pdo.so
Pour activer l'extension PDO sous les systèmes Windows, vous devez ajouter la ligne suivante dans votre php.ini :
extension=pdo.dll

Drivers PDO

Les drivers suivants sont actuellement implémentés dans l'interface PDO :

Nom du driverBases de données supportées
PDO_FIREBIRDFirebird/Interbase 6
PDO_MYSQLMySQL 3.x/4.0
PDO_OCIOracle Call Interface
PDO_ODBCODBC v3 (IBM DB2 et unixODBC)
PDO_PGSQLPostgreSQL
PDO_SQLITESQLite 3.x

Classes pré-définies

PDO

Représente une connexion entre PHP et un serveur de base de données.

Constructeur

  • PDO - construit un nouvel objet PDO

Méthodes

  • beginTransaction - démarre une transaction

  • commit - valide une transaction

  • exec - exécute une requête SQL et retourne le nombre de lignes affectées

  • errorCode - récupère un code erreur s'il y en a de disponible depuis la base de données

  • errorInfo - récupère un tableau d'informations d'erreurs s'il y en a de disponible depuis la base de données

  • getAttribute - récupère un attribut de connexion à une base de données

  • lastInsertId - récupère la valeur de la dernière ligne qui a été insérée dans la table

  • prepare - prépare une requête SQL pour l'exécution

  • query - exécute une requête SQL et retourne un jeu de résultats

  • rollBack - annule une transaction

  • setAttribute - définie un attribut de connexion à une base de données

PDOStatement

Représente une requête préparée et, après son exécution, un jeu de résultats associatif.

Méthodes

  • bindColumn - lie une variable PHP à une colonne de sortie dans le jeu de résultats

  • bindParam - lie une variable PHP à un paramètre dans la requête préparée

  • columnCount - retourne le nombre de colonnes dans un jeu de résultats

  • errorCode - récupère un code erreur s'il y en a depuis la requête

  • errorInfo - récupère un tableau d'informations d'erreurs s'il y en a, depuis la requête

  • execute - exécute une requête préparée

  • fetch - récupère une ligne depuis un jeu de résultats

  • fetchAll - récupère un tableau contenant toutes les lignes d'un jeu de résultats

  • fetchSingle - retourne les données de la première colonne dans le jeu de résultats

  • getAttribute - récupère un attribut PDOStatement

  • getColumnMeta - récupère des méta-données pour une colonne dans le jeu de résultats

  • rowCount - retourne le nombre de lignes qui ont été affectées par l'exécution d'un requête SQL

  • setAttribute - définie un attribut PDOStatement

  • setFetchMode - définie le mode de récupération pour un PDOStatement

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_NULL (entier)

Représente le type de données NULL SQL.

PDO_PARAM_INT (entier)

Représente le type de données INTEGER SQL.

PDO_PARAM_STR (entier)

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_LOB (entier)

Représente le type de données "objet large" SQL.

PDO_PARAM_STMT (entier)

PDO_FETCH_LAZY (entier)

Spécifie que la méthode de récupération doit retourner chaque ligne en tant qu'objet avec les noms de variables correspondant aux noms des colonnes retournées dans le jeu de résultats. PDO_FETCH_LAZY crée les noms des variables de l'objet comme ils sont rencontrés.

PDO_FETCH_ASSOC (entier)

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.

PDO_FETCH_NUM (entier)

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 commançant à 0.

PDO_FETCH_BOTH (entier)

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 (entier)

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 (entier)

Spécifie que la méthode de récupération doit retourner TRUE et assigner les valeurs des colonnes du jeu de résultats dans les variables PHP auxquelles elles sont liées avec la méthode PDOStatement::bindParam()() ou la méthode PDOStatement::bindColumn().

PDO_FETCH_COLUMN (entier)

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 (entier)

Spécifie que la méthode de récupération doit retourner une nouvelle instance de la classe demandée, liant les colonnes aux propriétés nommées dans la classe.

PDO_FETCH_INTO (entier)

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_ATTR_AUTOCOMMIT (entier)

PDO_ATTR_PREFETCH (entier)

PDO_ATTR_TIMEOUT (entier)

PDO_ATTR_ERRMODE (entier)

PDO_ATTR_SERVER_VERSION (entier)

PDO_ATTR_CLIENT_VERSION (entier)

PDO_ATTR_SERVER_INFO (entier)

PDO_ATTR_CONNECTION_STATUS (entier)

PDO_ATTR_CASE (entier)

Force les noms des colonnes dans une casse spécifiée par les constantes PDO_CASE_*.

PDO_ATTR_CURSOR_NAME (entier)

PDO_ATTR_CURSOR (entier)

PDO_ATTR_ORACLE_NULLS (entier)

PDO_ATTR_PERSISTENT (entier)

PDO_ERRMODE_SILENT (entier)

PDO_ERRMODE_WARNING (entier)

PDO_ERRMODE_EXCEPTION (entier)

PDO_CASE_NATURAL (entier)

Laisse les noms de colonnes comme retournés par le driver de base de données.

PDO_CASE_LOWER (entier)

Force les noms de colonnes en minuscule.

PDO_CASE_UPPER (entier)

Force les noms des colonnes en majuscule.

PDO_FETCH_ORI_NEXT (entier)

Récupère la prochaine ligne d'un jeu de résultats. Valide seulement pour les curseurs scrollables.

PDO_FETCH_ORI_PRIOR (entier)

Récupère la ligne précédente d'un jeu de résultats. Valide seulement pour les curseurs scrollables.

PDO_FETCH_ORI_FIRST (entier)

Récupère la première ligne d'un jeu de résultats. Valide seulement pour les curseurs scrollables.

PDO_FETCH_ORI_LAST (entier)

Récupère la dernière ligne d'un jeu de résultats. Valide seulement pour les curseurs scrollables.

PDO_FETCH_ORI_ABS (entier)

Récupère la ligne demandée par un numéro de ligne d'un jeu de résultats. Valide seulement pour les curseurs scrollables.

PDO_FETCH_ORI_REL (entier)

Récupère la ligne demandé par une position relative à la position courante du curseur d'un jeu de résultats. Valide seulement pour les curseurs scrollables.

PDO_CURSOR_FWDONLY (entier)

Crée un objet PDOStatement avec un curseur uniquement de retour. Cela accroit les performances de votre application mais restreint votre objet PDOStatement object à récupérer une seule ligne à la fois du jeu de résultats en arrière.

PDO_CURSOR_SCROLL (entier)

Crée un objet PDOStatement avec un curseur scrollable. Passez la constante PDO_FETCH_ORI_* pour contrôler les lignes récupérées du jeu de résultats.

PDO_ERR_CANT_MAP (entier)

PDO_ERR_SYNTAX (entier)

PDO_ERR_CONSTRAINT (entier)

PDO_ERR_NOT_FOUND (entier)

PDO_ERR_ALREADY_EXISTS (entier)

PDO_ERR_NOT_IMPLEMENTED (entier)

PDO_ERR_MISMATCH (entier)

PDO_ERR_TRUNCATED (entier)

PDO_ERR_DISCONNECTED (entier)

PDO_ERR_NO_PERM (entier)

PDO_ERR_NONE (chaîne de caractères)

Correspond à SQLSTATE '00000', ce qui signifie que la requête SQL a réussi sans erreur ni avertissement.

Table des matières
PDO::beginTransaction --  Démarre une transaction
PDO::commit --  Valide une transaction
PDO::__construct --  Crée une instance PDO qui représente une connexion à une base de données
PDO::errorCode --  Retourne le SQLSTATE associé avec la dernière opération sur la base de données
PDO::errorInfo --  Retourne les informations associées à l'erreur lors de la dernière opération sur la base de données
PDO::exec --  Exécute une requête SQL et retourne le nombre de lignes affectées
PDO::getAttribute --  Récupère un attribut d'une connexion à une base de données
PDO::lastInsertId --  Retourne l'identifiant de la dernière ligne insérée
PDO::prepare --  Prépare une requête à l'exécution et retourne un objet
PDO::query --  Exécute une requête SQL, retourne un jeu de résultats en tant qu'objet PDOStatement
PDO::quote --  Protège une chaîne pour l'utiliser dans une requête SQL PDO
PDO::rollBack --  Annule une transaction
PDO::setAttribute --  Définie un attribut
PDOStatement::bindColumn --  Lie une colonne à une variable PHP
PDOStatement::bindParam --  Lie un paramètre à un nom de variable spécifique
PDOStatement::columnCount --  Retourne le nombre de colonnes dans le jeu de résultats
PDOStatement::errorCode --  Récupère le SQLSTATE associé lors de la dernière opération sur la requête
PDOStatement::errorInfo --  Récupère les informations sur l'erreur associée lors dernière opération sur la requête
PDOStatement::execute --  Exécute une requête préparée
PDOStatement::fetch --  Récupère la ligne suivante d'un jeu de résultat PDO
PDOStatement::fetchAll --  Retourne un tableau contenant toutes les lignes du jeu d'enregistrements
PDOStatement::fetchSingle --  Retourne la première colonne de la ligne suivante dans un jeu de résultats
PDOStatement::getAttribute --  Récupère un attribut de requête
PDOStatement::getColumnMeta --  Retourne les méta-données pour une colonne numérotée
PDOStatement::rowCount --  Retourne le nombre de lignes affectées par le dernier appel à la fonction PDOStatement::execute()
PDOStatement::setAttribute --  Définie un attribut de requête
PDOStatement::setFetchMode --  Définie le mode de récupération par défaut pour cette requête