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.