Соединение без DSN-с PHP ODBC с использованием драйвера MDBTools

Я пытаюсь прочитать из базы данных Access, используя драйверы MDBTools для выполнения odbc_connectв Ubuntu 11.10. Он отлично работает при использовании настройки DSN в /etc/odbc.ini.

Ниже приведено содержимое/etc/odbc.ini:

[logindb]
Description = Microsoft Access Try DB
Driver = MDBToolsODBC
Database = /home/folder1/TestDb.mdb
Servername = localhost

Атрибут Driver в odbc.iniссылается на MDBToolsODBC, так что вот моя настройка odbc в/etc/odbcinst.ini:

[MDBToolsODBC]
Description = MDB Tools ODBC
Driver = /usr/lib/libmdbodbc.so.0
Setup =
FileUsage =
CPTimeout =
CPReuse =

Моя проблема заключается в том, что при использовании $conn = odbc_connect('logindb','','');я должен использовать жестко запрограммированный значение местоположения базы данных. В идеале я хотел бы указать первый параметр odbc_connect, используя соединение без DSN-, чтобы мой файл базы данных мог быть переменной (, которая будет считываться из разных баз данных). Что-то типа:

if ($cond1) {
  $db = "/home/folder1/TestDb.mdb";
} else {
  $db = "/home/folder1/TestDb2.mdb";
}

$conn = odbc_connect("odbc:Driver={MDBToolsODBC};Dbq=$db",'','');

Пробовал и без префикса odbc:, но не получилось. Может ли кто-нибудь сказать мне, почему указание DSN работает, но при попытке указать его на лету, используя, похоже, те же атрибуты, это не работает? Я думаю, это связано с параметрами и содержимым первого параметра в соединении без DSN-. Как всегда, любая помощь приветствуется.

9
задан cweiske 29 May 2012 в 17:31
поделиться