Pergunta

Estou tentando usar um banco de dados do Microsoft Access para um projeto de demonstração que estou pensando em fazer no CodeIgniter ou CakePhp. Ignorando a possível loucura do uso do Microsoft Access, não consegui descobrir com precisão como a string de conexão corresponde às configurações do banco de dados do Frameworks. No PHP direto, posso usar este código para me conectar a um banco de dados de acesso:

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

Como essas strings correspondem às configurações do código de ignição do código? Isso não parece estar funcionando:

$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";
Foi útil?

Solução

Tente configurar um DSN e mudar para o seguinte:

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

Há também uma seção na documentação do CodeIgniter que aborda strings de conexão:

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

Outras dicas

Seria possível usar o mecanismo SQL Express (gratuito!) E apenas importar/exportar seu db de acesso ao MS? Você poderia me agradecer mais tarde sobre isso. :-)

Outra opção é usar a biblioteca Adodb em vez da biblioteca nativa do DB da CI, embora você perca o suporte ao registro ativo do CI e tenha que reescrever certas bibliotecas no CI para utilizá -lo, mas vale a pena se você ainda quiser usar IC com um banco de dados que não é suportado para o seu aplicativo. Eu tive que fazer isso desde o início, quando havia bugs na implementação do Postgres.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top