CVI. 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

Windows

Suivez les mêmes étapes pour installer et activer les drivers PDO de votre choix.

  1. Les utilisateurs de Windows peuvent télécharger la bibliothèque DLL php_pdo.dll en tant que partie de la collection PECL sur http://www.php.net/downloads.php ou une version plus récente depuis PHP 5 PECL Snapshot.

  2. Pour activer l'extension PDO sous les systèmes Windows, vous devez ajouter la ligne suivante dans votre php.ini :
    extension=php_pdo.dll

  3. Ensuite, choisissez les fichiers DLL spécifiques à DB et utilisez soit dl() pour les charger à l'exécution, ou activez-les dans le php.ini au-dessus de php_pdo.dll. Par exemple :
    extension=php_pdo.dll
    extension=php_pdo_firebird.dll
    extension=php_pdo_mssql.dll
    extension=php_pdo_mysql.dll
    extension=php_pdo_oci.dll
    extension=php_pdo_oci8.dll
    extension=php_pdo_odbc.dll
    extension=php_pdo_pgsql.dll
    extension=php_pdo_sqlite.dll

    Ces DLLs doivent exister dans le dossier extension_dir.

Linux et UNIX

À cause d'un bogue dans l'installeur pear, vous devez installer le paquetage PDO manuellement en utilisant les étapes suivantes :

Suivez les mêmes étapes pour installer et activer les drivers PDO de votre choix.

  1. Télécharger le paquetage PDO sur votre machine :
    bash$  wget http://pecl.php.net/get/PDO

  2. Déterminer votre dossier PHP bin directory. Si votre binaire PHP 5 PECL réside dans le dossier /usr/local/php5/bin/php, alors, le dossier des binaires sera /usr/local/php5/bin.

  3. Définissez votre PATH avec le dossier bin de PHP :
    export PATH="/usr/local/php5/bin:$PATH"

  4. Compilez et installez manuellement l'extension PDO :
    bash$ tar xzf PDO-0.2.tgz
    bash$ cd PDO-0.2
    bash$ phpize
    bash$ ./configure
    bash$ make
    bash$ sudo -s
    bash# make install
    bash# echo extension=pdo.so >> /usr/local/php5/lib/php.ini

Drivers PDO

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

Nom du driverBases de données supportées
PDO_DBLIBFreeTDS / Microsoft SQL Server / Sybase
PDO_FIREBIRDFirebird/Interbase 6
PDO_MYSQLMySQL 3.x/4.0
PDO_OCIOracle Call Interface
PDO_ODBCODBC v3 (IBM DB2 unixODBC et win32 ODBC)
PDO_PGSQLPostgreSQL
PDO_SQLITESQLite 3.x
sqliteSQLite 2.x (PHP 5.1 et suivant)

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 - commence 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, depuis la base de données

  • errorInfo - récupère un tableau contenant les informations sur l'erreur, s'il y en a, depuis la base de données

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

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

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

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

  • quote - retourne une version quotée d'une chaîne pour utilisation dans une requête SQL

  • rollBack - annule une transaction

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

PDOStatement

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

Méthodes

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

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

  • closeCursor - ferme le curseur, autorisant la requête à être exécutée une nouvelle fois

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

  • errorCode - récupère le code erreur, s'l y en a, depuis une requête

  • errorInfo - récupère un tableau contenant les informations sur une erreur, s'il y en a, depuis une 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 touts les lignes depuis un jeu de résultats

  • fetchColumn - retourne les données depuis une colonne d'un jeu de résultats

  • getAttribute - récupère un attribut PDOStatement

  • getColumnMeta - récupère les méta-informations pour une colonne d'un jeu de résultats

  • nextRowset - récupère la ligne suivante (du jeu de résultats)

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

  • setAttribute - définit un attribut PDOStatement

  • setFetchMode - définit le mode de récupération pour une 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_PARAM_INPUT_OUTPUT (entier)

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_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. 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_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_FETCH_FUNC (entier)

PDO_FETCH_GROUP (entier)

PDO_FETCH_UNIQUE (entier)

PDO_FETCH_CLASSTYPE (entier)

PDO_ATTR_AUTOCOMMIT (entier)

Si la valeur vaut FALSE, PDO tente de désactiver l'auto-validation lorsque la connexion commence une transaction.

PDO_ATTR_PREFETCH (entier)

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 / drivers ne supportent pas cette fonctionnalité.

PDO_ATTR_TIMEOUT (entier)

Définit la valeur d'attente en secondes pour les communications avec la base de données.

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_DRIVER_NAME (chaîne de caractères)

Retourne le nom du driver.

PDO_ATTR_ORACLE_NULLS (entier)

Convertit les chaîne vide en valeurs NULL SQL.

PDO_ATTR_PERSISTENT (entier)

Demande une connexion persistante, plutôt que de créer une nouvelle connexion.

PDO_ATTR_FETCH_CATALOG_NAMES (integer)

Ajoute le contenu du catalogue de noms dans chaque nom de colonnes retourné dans le jeu de résultat. Le catalogue de noms et les noms de colonnes sont séparés par un point (.).

PDO_ATTR_FETCH_TABLE_NAMES (integer)

Ajoute le contenu de la table de noms dans chaque nom de colonne retourné dans le jeu de résultats. La table de nom et les noms de colonnes sont séparés par un point (.).

PDO_ERRMODE_SILENT (entier)

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.

PDO_ERRMODE_WARNING (entier)

Envoie une erreur de niveau E_WARNING si une erreur survient.

PDO_ERRMODE_EXCEPTION (entier)

Lance une exception PDOException si une erreur survient.

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 ou la valeur d'une séquence
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::closeCursor --  Ferme le curseur, permettant à la requête d'être de nouveau exécutée
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::fetchColumn --  Retourne une colonne depuis la ligne suivante d'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 d'un jeu de résultats
PDOStatement::nextRowset --  Avance à la prochaine ligne de résultats d'un gestionnaire de lignes de résultats multiples
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éfinit le mode de récupération par défaut pour cette requête
pdo_drivers --  Retourne un tableau contenant les drivers PDO disponibles

Hosting by: Hurra Communications GmbH
Generated: 2007-01-26 18:02:00