STS IRIS Jean-Claude CABIANCA Accès à une base de données Access en PHP via ODBC (Open Database Connectivity) I – INTRODUCTION I.1 – Versions des logiciels Microsoft Access 2007 WAMP Server 2.2a MYSQL 5.5.16Mise en oeuvre de JNI MYSQL Connector ODBC 5.1.9 I.2 – Installation des connecteurs ODBC Lors de l'installation de Access le connecteur ODBC correspondant « Microsoft Acess Driver (*.mdb, *.accdb) » est installé automatiquement. I.3 – Création des BDD Il faut créer 1 base de données sous Access. I.4 – Inscription de la base de données Avant de pouvoir utiliser une base de données via ODBC, il faut l'inscrire dans la base de registres. Il faut saisir le nom de votre source de données (BDD-ACCESS par exemple). La base de données est accessible via un fichier : C:\\wamp\www\parc-access\parc.accdb. La base utilisée contient une table nommée machines contenant les enregistrements suivants : Accès à une BDD Access en PHP via ODBC page 1/3 STS IRIS Jean-Claude CABIANCA II – PROGRAMMES II.1 – Exemple de programmation avec Access // testaccess.php <html> <head> <title>modification de données en PHP :: partie 1</title> </head> <body> <?php //connecxion au serveur: $cnx = odbc_connect( "Driver={Microsoft Access Driver (*.mdb, *.accdb)};Dbq=C:\\wamp\www\parc-access\parc.accdb", "", "" ) or die ("Impossible de se connecter à la base de données") ; //requête1 SQL: $sql = "INSERT INTO machines (id, ip, mac, nom, salle) VALUES (10, '10.140.1.246', '00:01:02:03:01:04', 'poste10', 1)" ; //exécution de la requête1: $requete = odbc_exec($cnx, $sql) or die( "Impossible d'executer la requete1 SQL") ; //requête2 SQL: $sql = "SELECT * FROM machines " ; //exécution de la requête2: $requete = odbc_exec($cnx, $sql) or die( "Impossible d'executer la requete2 SQL") ; //Recuperation des données: $d = array(); while(odbc_fetch_row($requete)){ for($i=1;$i<=odbc_num_fields($requete);$i++){ $field_name = odbc_field_name($requete, $i); $data[$field_name] = odbc_result($requete, $field_name); } $d[] = $data; } odbc_free_result($requete) or die("Unable to free result"); odbc_close($cnx); //affichage des données: //print_r($d); echo "<table border=1 width=\"100%\">"; $liste_indices=array_keys((array)$d[0]); echo "<tr>"; while($indice=each($liste_indices)) { echo "<td align=center>"; Accès à une BDD Access en PHP via ODBC page 2/3 STS IRIS Jean-Claude CABIANCA echo $indice['value']; echo "</td>"; } echo "</tr>"; foreach((array)$d as $cle_tableau=>$ligne) { echo "<tr>"; foreach($ligne as $cle=>$valeur) { echo "<td align=center>"; echo $valeur; echo "</td>"; } echo "</tr>"; } echo "</table>"; ?> </body> </html> II.2 – Résultat Accès à une BDD Access en PHP via ODBC page 3/3