Domanda

Sto cercando di utilizzare un database Microsoft Access per un progetto demo che sto pensando di realizzare in CodeIgniter o CakePHP. Ignorando la possibile follia di utilizzare Microsoft Access, non sono stato in grado di capire esattamente come la stringa di connessione corrisponda alle impostazioni del database dei framework. In puro PHP, posso usare questo codice per connettermi a un database di Access:

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

In che modo tali stringhe corrispondono alle impostazioni db di Code Igniter? Questo non sembra funzionare abbastanza:

$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";
È stato utile?

Soluzione

Prova a configurare un DSN e a modificare quanto segue:

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

C'è anche una sezione nella documentazione di CodeIgniter che affronta le stringhe di connessione:

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

Altri suggerimenti

Sarebbe possibile utilizzare invece il motore SQL Express (gratuito!) e importare / esportare il tuo db MS Access? Potresti ringraziarmi più tardi. : -)

Un'altra opzione è utilizzare la libreria ADOdb invece della libreria DB nativa di CI, anche se perderai il supporto Active Record da CI e dovrai riscrivere alcune librerie in CI per utilizzarlo, ma ne vale la pena se vuoi ancora utilizzare CI con un DB non supportato per l'applicazione. Ho dovuto farlo presto quando c'erano bug nell'implementazione di Postgres.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top