<?php
/**
* @page connexion_microsoft_acccess.php
* @brief Exemple de connexion à une base Microsoft Access (2 méthodes)
*
* @author hughes monget
* @see http://monget.com/
*/
highlight_file(__FILE__);
echo '<hr />';
echo '<pre>';
$str_chemin_base = dirname(__FILE__).DIRECTORY_SEPARATOR.'bd_test.mdb';
if (!is_file($str_chemin_base))
{
exit('fichier base de données non trouvée');
}
// ---------------------------------------------------------------------
// Méthode 1: avec le module ODBC mais sans lien ODBC
// http://www.web-max.ca/PHP/odbc_1.php
$str_dsn = 'DRIVER={Microsoft Access Driver (*.mdb)}; DBQ='.$str_chemin_base;
$res_connexion = odbc_connect($str_dsn, '', '');
if (!$res_connexion)
{
exit('problème de connexion à la base de données');
}
$str_sql = 'select * from table_test';
$res_resulset = odbc_exec($res_connexion, $str_sql);
if (!$res_resulset)
{
exit('problème de requête sql');
}
while ($arr_mix_ligne = odbc_fetch_array($res_resulset))
{
echo $arr_mix_ligne['libelle'].'<br />';
}
odbc_free_result($res_resulset);
odbc_close($res_connexion);
// ---------------------------------------------------------------------
// Méthode 2: avec l'objet COM "ADODB.Connection".
// http://code.activestate.com/recipes/163447-microsoft-access-database-connectivity-dsn-less/
$obj_connection = new COM('ADODB.Connection');
if (!$obj_connection)
{
exit('Cannot start ADO.');
}
try
{
$obj_connection->Open('Provider=Microsoft.Jet.OLEDB.4.0; Data Source='.$str_chemin_base);
}
catch (com_exception $e)
{
exit('Cannot open with Jet.');
}
echo '<hr />';
$obj_resulset = $obj_connection->Execute($str_sql);
if (!$obj_resulset)
{
exit('SQL problem.');
}
while (!$obj_resulset->EOF)
{
echo $obj_resulset->Fields['libelle']->Value.'<br />';
$obj_resulset->MoveNext();
}
$obj_resulset->Close();
$obj_connection->Close();
echo '</pre>';