DSN-freie Verbindung mit PHP ODBC über den MDBTools-Treiber
Ich versuche mit aus einer Access-Datenbank zu lesenMDBTools Treiber zum Ausführen einesodbc_connect
auf Ubuntu 11.10. Es funktioniert gut, wenn Sie das DSN-Setup in verwenden/etc/odbc.ini
.
Nachfolgend finden Sie den Inhalt von/etc/odbc.ini
:
<code>[logindb] Description = Microsoft Access Try DB Driver = MDBToolsODBC Database = /home/folder1/TestDb.mdb Servername = localhost </code>
Das Driver-Attribut inodbc.ini
VerweiseMDBToolsODBC
Hier ist mein ODBC Setup in/etc/odbcinst.ini
:
<code>[MDBToolsODBC] Description = MDB Tools ODBC Driver = /usr/lib/libmdbodbc.so.0 Setup = FileUsage = CPTimeout = CPReuse = </code>
Mein Problem ist, bei der Verwendung$conn = odbc_connect('logindb','','');
Ich muss den fest codierten Wert für den Speicherort der Datenbank verwenden. Im Idealfall möchte ich den ersten Parameter von angebenodbc_connect
über eine DSN-lose Verbindung, so dass meine Datenbankdatei eine Variable sein kann (wird von verschiedenen DBS gelesen). So etwas wie:
<code>if ($cond1) { $db = "/home/folder1/TestDb.mdb"; } else { $db = "/home/folder1/TestDb2.mdb"; } $conn = odbc_connect("odbc:Driver={MDBToolsODBC};Dbq=$db",'',''); </code>
Ich habe es auch ohne das odbc: -Präfix versucht, aber es hat nicht funktioniert. Kann mir jemand sagen, warum das Angeben des DSN funktioniert, aber wenn ich versuche, es im laufenden Betrieb mit denselben Attributen anzugeben, funktioniert es nicht? Ich denke, es hat mit den Parametern und dem Inhalt des ersten Parameters in der Verbindung ohne DSN zu tun. Wie immer wird jede Hilfe sehr geschätzt.