Как добавить подключение MSAccess к CodeIgniter или CakePHP?

Я пытаюсь использовать базу данных Microsoft Access для демонстрационного проекта, который я думаю сделать либо в CodeIgniter, либо в CakePHP. Игнорируя возможную глупость использования Microsoft Access, я не смог точно выяснить, как строка подключения соответствует настройкам базы данных фреймворков. На чистом PHP я могу использовать этот код для подключения к базе данных Access:

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

Как эти строки соответствуют настройкам базы данных Code Igniter? Кажется, это не совсем работает:

$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";

person sprugman    schedule 07.10.2008    source источник


Ответы (2)


Попробуйте настроить DSN и изменить на следующее:

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

В документации CodeIgniter также есть раздел, посвященный строкам подключения:

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

person JayTee    schedule 04.11.2008

Можно ли вместо этого использовать движок SQL Express (бесплатно!) и просто импортировать/экспортировать базу данных MS Access? Вы могли бы поблагодарить меня позже за это. :-)

Другой вариант — использовать библиотеку ADOdb вместо собственной библиотеки БД CI, хотя вы потеряете поддержку Active Record от CI и вам придется переписать определенные библиотеки в CI, чтобы использовать ее, но оно того стоит, если вы все еще хотите использовать CI с БД, которая не поддерживается для вашего приложения. Мне пришлось сделать это на раннем этапе, когда в реализации Postgres были ошибки.

person Adam    schedule 04.11.2008