Я пытаюсь прочитать из базы данных 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-. Как всегда, любая помощь приветствуется.