Warning: mysql_selectdb() [function.mysql-selectdb]: A link to the server could not be established in /mnt/115/sda/7/1/lwest/doc/php/lib/stat.php3 on line 11

Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in /mnt/115/sda/7/1/lwest/doc/php/lib/stat.php3 on line 12

LibOdbc

Synopsis

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.

Afficher sommaire

	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

Installation

Télécharger libodbc.zip

Documentation

Constructeur

	$o->Odbc( "dsn", "user", "password" );

Exec

	$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 ).

Get

	$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]

GetAll

	$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();

Close_Cursor

Ferme un curseur ouvert avec Exec. Appel optionnel mais conseillé.

	$o->Close_Cursor( $cursor);

Destroy

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();

Escape

	$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 );

Statut

LibOdbc

LanguagePHP3
Version1.2
Date16/09/99
AuthorLeo West

Sommaire

  1. LibOdbc
    1. Synopsis
    2. Installation
    3. Documentation
      1. Constructeur
      2. Exec
      3. Get
      4. GetAll
      5. Close_Cursor
      6. Destroy
      7. Escape
    4. Statut
    5. Sommaire