Composant d'acces à une base de données via ODBC. LibOdbc encapsule les fonctions ODBC de PHP, permettant un accès à ODBC simplifié. Pour cela, il faut l'instancier la classe Odbc puis utiliser les méthodes decrites ci-dessous.
include "libodbc.php3"; $o= new Odbc( "dsn", "user", "password" ); $o->exec( "SELECT id,nom, prenom, email FROM T_Annuaire"); $result= array(); // creation de la variable qui stockera le resultat echo "<table><tr><th>Prenom NOM</th><th>Tel</th>\n"; while( $o->get( &$result ) ) { // recupere chaque tuple, tant qu'il y en a de disponible echo "<tr><td>"; echo $result['prenom'] , " ", strtoupper($result['nom']), "</td><td>", $result['tel']; echo "</td></tr>"; } echo "</table>"; $o->close(); // ferme le curseur $o->end(); // termine la connexion ODBC
Télécharger libodbc.zip
$o->Odbc( "dsn", "user", "password" );
$cursor = $o->exec( $ordre_sql );
Execute un ordre SQL. Renvoie un curseur si le l'ordre a réussi, false sinon
$o->Exec( "SELECT * FROM T_User WHERE id_user=12", $cursor );
Si l'ordre renvoie un résultat (type SELECT), Exec() effectue quelques traitements supplémentaires à usage interne. Note: Dans le cas d'une erreur SQL, le message d'erreur ODBC est affiché directement ( en fait par la librairie ODBC ).
$status= Odbc::Get( &$resultat, $cursor )
Get() retourne le resultat d'un ordre SQL type SELECT dans un tableau associatif (ici $resultat) Ce tableau est indexé par les noms des champs de l'ordre. Attention, $variable doit auparavant etre initialisé.
Get() renvoie vrai si tout s'est bien passé, et false si il n'y a pas de recorset. Cela permet des contructions rapides comme dans l'exemple ci-dessous.
$result= array(); $o->Exec( "SELECT * FROM T_Users"); while( $o->get( &$result ) ) // traitement sur row $result } $o->close();
Pour recupérer le résultat d'un ordre SQL de type SELECT COUNT(*), il faut renommer le count(*) à l'aide de AS.
SELECT COUNT(*) AS nombre FROM matable => le resultat sera disponible dans $resultat[nombre] SELECT SUM(montant) AS total FROM matable => le resultat sera disponible dans $resultat[total]
$o->getAll( &$tableau );
Dans le case d'un ordre SELECT portant sur une seule colonne, GetAll renvoie tous les tuples dans un tableau simple.
$o->exec( "SELECT nom FROM T_Annuaire" ); $tous_les_noms= array(); $o->getAll( &$tous_les_noms ); // recupere tous les noms de l'annuaire $o->close();
Ferme un curseur ouvert avec Exec. Appel optionnel mais conseillé.
$o->Close_Cursor( $cursor);
Termine la connexion Odbc. Son appel est conseillé.
Note: Destroy() est un pseudo-destructeur a appeller en fin d'utilisation de la classe.
$o->Destroy();
$o->escape( &$tuple );
Remplace les caractères ' par ''. Le paramètre à traiter $tuple peut etre de type scalaire ou tableau. Il est transmis pat adresse. Cette méthode est concue pour les ordres SQL d'insertion ou de mise a jour.
$user= array( 'nom' => "DE L'AMERIQUE" , 'prenom' => "L'oncle", 'tel' => "01 45 98 78 10" ); $o->escape( &$user ); // $user[prenom] devient "L''oncle" $sql= "INSERT INTO T_Annuaire( nom, prenom, tel ) VALUES( '$user[nom]', '$user[prenom]', '$user[tel]' )"; $o->exec( $sql );
LibOdbc
Language | PHP3 |
Version | 1.2 |
Date | 16/09/99 |
Author | Leo West |