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 VerweiseMDBToolsODBCHier 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.

Antworten auf die Frage(3)

Ihre Antwort auf die Frage