2008-10-07 22 views
3

J'essaie d'utiliser une base de données Microsoft Access pour un projet de démonstration que je pense faire soit dans CodeIgniter ou CakePHP. En ignorant la folie possible de l'utilisation de Microsoft Access, je n'ai pas pu déterminer précisément comment la chaîne de connexion correspond aux paramètres de base de données des frameworks. En PHP directement, je peux utiliser ce code pour se connecter à une base de données d'accès:Comment ajouter une connexion MSAccess à CodeIgniter ou CakePHP?

$db_connection = odbc_connect(
    "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=\\path\\to\\db.mdb", 
    "ADODB.Connection", "", "SQL_CUR_USE_ODBC" 
); 

Comment ces chaînes correspondent aux paramètres du CodeIgniter? Cela ne semble pas être assez de travail:

$db['access']['hostname'] = "{Microsoft Access Driver (*.mdb)}"; 
$db['access']['username'] = "ADODB.Connection"; 
$db['access']['password'] = ""; 
$db['access']['database'] = "\\path\\to\\db.mdb"; 
$db['access']['dbdriver'] = "odbc"; 
$db['access']['dbprefix'] = ""; 
$db['access']['pconnect'] = TRUE; 
$db['access']['db_debug'] = TRUE; 
$db['access']['cache_on'] = FALSE; 
$db['access']['cachedir'] = ""; 
$db['access']['char_set'] = "utf8"; 
$db['access']['dbcollat'] = "utf8_general_ci"; 

Répondre

2

Essayez la mise en place d'un DSN et en changeant les éléments suivants:

$db['access']['hostname'] = "<dsn name>"; 
$db['access']['username'] = ""; 
$db['access']['password'] = ""; 
$db['access']['database'] = "<dsn name>"; 

Il y a aussi une section dans la documentation CodeIgniter qui traite les chaînes de connexion:

http://codeigniter.com/user_guide/database/connecting.html

0

Serait-il possible d'utiliser le moteur SQL Express (gratuit!) À la place et juste importer/exporter votre MS Access db? Vous pourriez me remercier plus tard. :-)

Une autre option consiste à utiliser la bibliothèque ADOdb au lieu de la bibliothèque DB native de CI, bien que vous perdiez le support Active Record de CI, et devez réécrire certaines bibliothèques dans CI pour l'utiliser, mais ça vaut le coup si vous souhaitez toujours utiliser CI avec une base de données qui n'est pas prise en charge pour votre application. Je devais le faire tôt quand il y avait des bugs dans la mise en œuvre de Postgres.