Easy-Micro

ESPACEMEMBRE POO
PEAR-MDB2

La bibliothèque MDB2

Configuration et utilisation de la bibliothèque MDB2

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, on utilise en PHP la bibliothèque d'abstraction MDB2 qui permet d'intercaler une couche d'abstraction (MDB2) entre la SGBD et le code PHP.

PHP Bibliothèque PEAR::MDB2 (Voir pear.php.net)
PEAR (PHP Extension and Application Repository) est un ensemble de classes PHP "prêt à l'emploi".

Configuration
Dans Packages / DATABASES aller sur MDB2
Voir les "Dependencies for MDB2" pour les dépendances à télécharger : pour utiliser MDB2, il faut aussi avoir télécharger le package PEAR

Exemple:
<?php

// Stockage des infos de bases
$dbType = "mysql";
$base = "mabase";
$user = "root";
$pass = "";
$host = "localhost";

$dsn = "$dbType://$user:$pass@$host/$base";

// Chargement de la bibliothèque
require_once 'MDB2/MDB2.php';
// Note : c'est le fichier MDB2 qui appel Le fichier PEAR

// Connexion

$db = & MDB2::connect($dsn);
// Note : Le & signifie que vous récupérez une référence sur l'objet et non une copie. Il est important de le conserver.
// connect($dsn, $options) : $options est facultatif, c'est un tableau associatif : parametre => valeur.
// L'option la plus intéressante concerne la portabilité. Ici nous avons demandé d'activer toutes les options de portabilité (MDB2_PORTABILITY_ALL).

$sql = "SELECT * FROM clients";
$result = $db->query($sql);

foreach($result as $record)
{
print_r($record);
}

$db->disconnect();
?>

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 (developpement) mais pas pour un affichage Web (production). Il faut la remplacer par la fonction "echo".


< Page précédente POO Page suivante >