Połączenie bez DSN z PHP ODBC za pomocą sterownika MDBTools

Próbuję odczytać z bazy danych Access za pomocąMDBTools sterowniki do wykonaniaodbc_connect w Ubuntu 11.10. Działa dobrze, gdy używasz konfiguracji DSN/etc/odbc.ini.

Poniżej znajduje się zawartość/etc/odbc.ini:

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

Atrybut Driver wodbc.ini odniesieniaMDBToolsODBC, więc tutaj jest moja konfiguracja odbc/etc/odbcinst.ini:

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

Moim problemem jest używanie$conn = odbc_connect('logindb','','');, Muszę użyć zakodowanej wartości dla lokalizacji bazy danych. Idealnie chciałbym określić pierwszy parametrodbc_connect przy użyciu połączenia bez DSN, aby mój plik bazy danych mógł być zmienną (będzie odczytywany z różnych dbs). Coś jak:

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

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

Próbowałem również bez prefiksu odbc: ale to nie działa. Czy ktoś może mi powiedzieć, dlaczego określanie działa DSN, ale próbując określić go w locie za pomocą tego, co wygląda jak te same atrybuty, nie działa? Myślę, że ma to związek z parametrami i zawartością pierwszego parametru w połączeniu bez DSN. Jak zawsze, każda pomoc jest bardzo mile widziana.

questionAnswers(3)

yourAnswerToTheQuestion