PHP PDO

L'extension PHP Data Objects (PDO) définit une interface légère et cohérente permettant à PHP d'accéder aux bases de données.

PDO fournit une couche d'abstraction d'accès aux données, ce qui signifie que quelle que soit la base de données que vous utilisez, vous pouvez utiliser les mêmes fonctions (méthodes) pour interroger et récupérer des données.

PDO a été publié avec PHP 5.1 et est également disponible dans l'extension PECL pour PHP 5.0 ; il ne peut pas s'exécuter sur les versions antérieures de PHP.


Installation de PDO

Vous pouvez utiliser la fonction phpinfo() de PHP pour vérifier si l'extension PDO est installée.

Installation de PDO sur les systèmes Unix

Sous Unix ou Linux, vous devez ajouter les extensions suivantes :

extension=pdo.so

Utilisateurs Windows

PDO et tous les principaux pilotes sont distribués avec PHP en tant qu'extensions partagées. Pour les activer, il suffit de modifier le fichier php.ini et d'ajouter les extensions suivantes :

extension=php_pdo.dll
En outre, il existe les extensions de base de données correspondantes suivantes :

;extension=php_pdo_firebird.dll
;extension=php_pdo_informix.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

Après avoir défini ces configurations, nous devons redémarrer PHP ou le serveur web.

Voyons maintenant un exemple concret. Voici un exemple d'utilisation de PDO pour se connecter à une base de données MySQL :

Exemple

<?php
$dbms='mysql';     //type de base de données
$host='localhost'; //nom d'hôte de la base de données
$dbName='test';    //base de données utilisée
$user='root';      //nom d'utilisateur de connexion à la base de données
$pass='';          //mot de passe correspondant
$dsn="$dbms:host=$host;dbname=$dbName";


try {
    $dbh = new PDO($dsn, $user, $pass); //initialiser un objet PDO
    echo "Connexion réussie<br/>";
    /*Vous pouvez également effectuer une opération de recherche
    foreach ($dbh->query('SELECT * from FOO') as $row) {
print_r($row); //vous pouvez utiliser echo($GLOBAL); pour voir ces valeurs
    }
    */

    $dbh = null;
} catch (PDOException $e) {
    die ("Error!: " . $e->getMessage() . "<br/>");
}
//Par défaut, ceci n'est pas une connexion persistante. Si vous avez besoin d'une connexion persistante à la base de données, vous devez ajouter un paramètre à la fin : array(PDO::ATTR_PERSISTENT => true) comme ceci :
$db = new PDO($dsn, $user, $pass, array(PDO::ATTR_PERSISTENT => true));

?>

Très simple. Ensuite, regardons de plus près la documentation spécifique de PHP PDO :

Autres extensions