Accès à une base de données Access en PHP via ODBC (Open

Transcription

Accès à une base de données Access en PHP via ODBC (Open
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

Documents pareils