Question

J'essaie d'utiliser une base de données Microsoft Access pour un projet de démonstration que je pense faire dans CodeIgniter ou CakePHP. Ignorant la folie possible d'utiliser Microsoft Access, je n'ai pas été en mesure de comprendre exactement comment la chaîne de connexion correspond aux paramètres de base de données des frameworks. En PHP simple, je peux utiliser ce code pour me connecter à une base de données Access:

$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-elles aux paramètres de la base de données Code Igniter? Cela ne semble pas fonctionner assez bien:

$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";
Était-ce utile?

La solution

Essayez de configurer un DSN et procédez comme suit:

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

Il existe également une section dans la documentation CodeIgniter qui traite des chaînes de connexion:

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

Autres conseils

Serait-il possible d'utiliser le moteur SQL Express (gratuit!) à la place et simplement importer / exporter votre base de données MS Access? Vous pourrez me remercier plus tard à ce sujet. : -)

Une autre option consiste à utiliser la bibliothèque ADOdb à la place de la bibliothèque de base de données native de CI, même si vous perdez le support Active Record de CI et devez réécrire certaines bibliothèques dans CI pour l'utiliser, mais cela en vaut la peine si vous souhaitez toujours utiliser CI avec une base de données non prise en charge par votre application. Je devais le faire dès le début quand il y avait des bugs dans l'implémentation Postgres.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top