Simulation ODBC avec PHP
Publié par hello il y a 6 mois
Introduction
Cet article à pour vocation de vous présenter une alternative à l'utilisation d'ODBC tout en restant sur un modèle similaire.
Vous utiliserez cette technique si vous n'avez pas accès à ODBC (ce qui est le cas si vous n'avez pas le pack office installé sur votre poste).
Merci à ODBCPHP pour cet articlePrésentation du DSN et d'ODBC
Le DSN (Data Source Name) est un système qui permet d'émettre des données sous différents environnements (Linux, Windows, Mac, etc). Dans l'environnement Windows, les déclarations s'effectuent le plus souvent par le biais d'ODBC.
Nous allons étudier comment utiliser une base de données sans déclaration. L'utilisation d'un fichier Access de Microsoft conviendra parfaitement à illustrer notre exemple.
Découpe script exemple :
- <?php
- if (!$conn = new COM('ADODB.Connection')) // Declaration Objet
- ?>
ADOBD (Active Data Objects Data Base) permet d'effectuer des requêtes en SQL pour le PHP avec des bases de données comme MySQL, PostgreSQL,Interbase, Informix, Oracle, MS SQL 7, Foxpro, Access, ADO, SAP DB, SQLite, Sybase, DB2, etc

- <?php
- $connect = "
- DRIVER={Microsoft Access Driver (*.mdb)}; // choix driver
- DBQ=database; // chemin + nom de l’application
- DefaultDir=database; // chemin du fichier
- SERVER=localhost; // adresse du serveur
- UID=admin; // login
- PWD =password " ; // password
- $conn->open ($connect) ; // ouverture de la base
- ?>
Dans la déclaration du pilote, seul 2 critèresres sont obligatoires :
- La déclaration du Driver
- Le nom du fichier (BDQ).
Les autres sont conseillés suivant les droits d'accès de votre serveur.
- <?php
- $requete = "SELECT * FROM $table"; // Selectionne une table
- $resultat = $conn->execute($requete); // execute la requete
- $col2 = $resultat->Fields(1); // colonne 2
- $col3 = $resultat->Fields(2); // colonne 3
- while (!$resultat->EOF) // tant que pas le fichier n'est pas terminé
- {
- echo "$col2->value ";
- echo "$col3->value ";
- echo "<br />";
- $resultat->MoveNext(); // enregistrement suivant
- }
- ?>
La requete prend toutes les colonnes de la table. Il faut ensuite déterminer la sélection des colonnes de notre choix et d'afficher le résultat suivant la sélection.
- <?php
- $base="c:\\exemple.mdb";
- $table="t_liste";
- if (!$conn = new COM("ADODB.Connection")) // Declaration Objet
- $conn->open("DRIVER={Microsoft Access Driver (*.mdb)};DBQ=$base"); // ouverture du fichier
- $requete = "SELECT * FROM $table"; // Selectionne une table
- $resultat = $conn->execute($requete); // execute la requete
- $col2 = $resultat->Fields(1); // colonne 2
- $col3 = $resultat->Fields(2); // colonne 3
- echo "<table>";
- while (!$resultat->EOF) // tant que pas le fichier n'est pas terminé
- {
- echo "<tr>";
- echo "<td>$col2->value </td>";
- echo "<td>$col3->value </td>";
- echo "</tr>";
- $resultat->MoveNext(); // enregistrement suivant
- }
- echo "</table>";
- $resultat->Close(); // ferme la requete
- $conn->Close(); // ferme la connection
- ?>
Aperçu sous Ms ACCESS :

Aperçu avec votre navigateur :