Easy-Micro

ESPACEMEMBRE POO PHP
PDO

La bibliothèque PHP Data Objects

Configuration et utilisation de la bibliothèque PDO

En PHP le dialogue avec plusieurs SGBD implique l'utilisation de commande spécifique pour chacune d'entre elle. Par exemple, pour la connexion, on utilise les commades: "sysbase_connect()" pour une base Sysbase, "mysql_connect()" pour une base MySQL, "mssql_connect()" pour MS SQL Server ou "ora_logon()" pour Oracle. D'où la difficulté pour mettre en oeuvre une statégie commune.

Afin de réaliser un code portable, PHP propose nativement (pré-installée dans PHP5) la bibliothèque d'abstraction PDO (PHP Data Objects) qui permet d'intercaler une couche d'abstraction (PDO) entre la SGBD et le code PHP.

PHP Bibliothèque PDO - PHP Data Objects (Voir php.net)

Configuration
Prenez le temps de vérifier si l'extension PDO (PHP5) est bien activée. Ouvrez le fichier "php.ini" et faites une recherche sur ; Windows Extensions, vous devriez arriver directement sur la ligne ;extension=php_pdo.dll. Si besoin, enlevez juste le commentaire (;) et c'est bon :-)

<?php
// déclarations de base
$user = "root";
$pass = "mysql";

// connexion avec MySQL
$bdd = new PDO('mysql:host=localhost;dbname=mabase', $user, $pass);

$requete = $bdd->query('SELECT * FROM matable');
$ligne = $requete->fetchAll(PDO::FETCH_ASSOC);

echo $ligne["nom_client"];

// fermeture de connexion
$bdd = null;

?>

Note: si vous avez des problèmes de caractère, utilisez la fonction PHP utf8_encode() afin d'encoder vos accents avant l'affichage. Exemple : utf8_encode($ligne['nom_client']))

// Autre technique d'affichage par référence à la méthode query
foreach($bdd->query('SELECT * FROM clients') as $ligne) {
echo $ligne["nom_client"]."<br />";
}

// Exemple d'affichage avec un while

while($ligne=$requete->fetch()) {
echo $ligne["nom_client"];
}

// autre exemple de connexion avec Oracle
// seule cette ligne change. Le reste du code est le même
$bdd = new PDO('oci:dbname=mabase', $user, $pass);

Note: Attention, la plupart des exemples en ligne utilisent la fonction "print_r" qui permet d'afficher directement le contenu des variables. Cette fonction est utilisable uniquement en période de test (développement) mais pas pour un affichage Web (production). Il faut la remplacer par la fonction "echo".



< Page précédente POO PHP Page suivante >