ADODB
La bibliothèque ADODB
Exemple d'utilisation de la bibliothèque ADODB
En PHP le dialogue avec plusieurs SGBD implique l'utilisation de commande spécifique pour chacune. 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 ADODB qui permet d'intercaler une couche d'abstraction (ADODB) entre la SGBD et le code PHP.
Bibliothèque ADODB (http://adodb.sourceforge.net)
Exemple:
<?php
// Stockage des infos de bases
$base = "mabase";
$user = "root";
$pass = "";
$serveur = "localhost";
// Stockage du type de bases que l'on veut utiliser
$BDD_type = "mysql";
// Chargement de la bibliothèque (stockée dans le dossier adodb5)
include_once('adodb5/adodb.inc.php');
// Connexion à la base
if (!isset($bdd)) {
// la connexion n'existe pas et un nouvel objet est instancié (ici $bdd)
$bdd = NewADOConnection($BDD_type);
// la connexion effective est déclanchée par référence à la méthode Connect
$etatconn = $bdd->Connect($serveur, $user, $pass, $base);
// le résultat de la connexion est testé
if($etatconn == FALSE) { echo "Connexion échouée !"; die(); }
// Premier exemple d'affichage
// par référence à aux méthodes Execute et FetchRow
$resultat = $bdd->Execute("SELECT * FROM clients");
while ($ligne = $resultat->FetchRow()) {
echo $ligne["nomClient"]."<br />";
}
// Deuxième exemple d'affichage
// par référence à à la méthode MoveNext
while (!$resultat->EOF) {
echo $resultat->fields["nomClient"]."<br />";
$resultat->MoveNext();
}
// Troisième exemple d'affichage
foreach ($resultat as $row) {
echo $row["nomClient"];
}
}
?>
// Stockage des infos de bases
$base = "mabase";
$user = "root";
$pass = "";
$serveur = "localhost";
// Stockage du type de bases que l'on veut utiliser
$BDD_type = "mysql";
// Chargement de la bibliothèque (stockée dans le dossier adodb5)
include_once('adodb5/adodb.inc.php');
// Connexion à la base
if (!isset($bdd)) {
// la connexion n'existe pas et un nouvel objet est instancié (ici $bdd)
$bdd = NewADOConnection($BDD_type);
// la connexion effective est déclanchée par référence à la méthode Connect
$etatconn = $bdd->Connect($serveur, $user, $pass, $base);
// le résultat de la connexion est testé
if($etatconn == FALSE) { echo "Connexion échouée !"; die(); }
// Premier exemple d'affichage
// par référence à aux méthodes Execute et FetchRow
$resultat = $bdd->Execute("SELECT * FROM clients");
while ($ligne = $resultat->FetchRow()) {
echo $ligne["nomClient"]."<br />";
}
// Deuxième exemple d'affichage
// par référence à à la méthode MoveNext
while (!$resultat->EOF) {
echo $resultat->fields["nomClient"]."<br />";
$resultat->MoveNext();
}
// Troisième exemple d'affichage
foreach ($resultat as $row) {
echo $row["nomClient"];
}
}
?>
Note: La syntaxe "->" utilisé ci-dessus permet en POO de faire référence à une méthode de la classe ADODB.
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".