Вопрос

Я пытаюсь использовать базу данных 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";
Это было полезно?

Решение

Попробуйте настроить 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

Другие советы

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top