Christian Seiler: Access-DB mit PHP über ODBC, DSN auf Linux-Kiste wie erzeugen?

Beitrag lesen

Hallo Josef,

Nun weiß ich, dass man dazu eine DSN-Datenquelle einrichten muss. Dummerweise, wird in jedem PHP-Buch beschrieben, wie man das auf einer Windows-Kiste macht (und da funktioniert der PHP-ODBC-Zugriff anschließend auch). Nur wie man dieses DSN-Ding per Shell auf einem Linux-Server hinbekommt, finde ich nirgends.

Du wirst scheitern. Sorry, dass ich das so direkt sage, aber:

ODBC ist eine Schnittstelle, an die von zwei Seiten aus "angedockt" werden kann: Zum einen können Applikationen (z.B. auch PHP-Scripte) ODBC nutzen, um auf Datenbanken zuzugreifen. Zum anderen können Datenbanktreiber an ODBC andocken, um Zugang zu unterschiedlichen Datenbanken zu ermöglichen.

Wenn Du auf einer Windows-Kiste nun Microsoft Access installierst, dann installiert Microsoft Access einen ODBC-Treiber, der die Bibliotheken von Microsoft Access selbst (!) benutzt, damit Datenbanken über ODBC auf Access-Datenbanken zugreifen können.

Unter Linux mag Dir jetzt nun bereits ODBC zur Verfügung stehen - das nützt Dir aber gar nichts. Der Grund: Microsoft Access wirst Du auf Deinem Linux-Server nicht installiert haben und wohl kaum so installiert bekommen [1], dass Du damit ODBC nutzen kannst. Das heißt aber dann auch, dass Du keinen ODBC-Treiber zur Verfügung hast, um auf Access-Datenbanken zuzugreifen - ODBC ist für Dich in diesem Fall nutzlos.

Gut, es kann sein, dass irgend jemand mal einen nativen Linux-ODBC-Treiber für Access-Datenbanken geschrieben hat, aber ich wage es ehrlich gesagt, daran zu zweifeln. Du kannst ja mal danach suchen, vielleicht findest Du ja doch etwas. Wenn Du die Datenbank also verwenden willst, dann bleibt Dir nur, die Datenbank zu konvertieren in etwas, was Du mit PHP verarbeiten kannst. Das kann SQLite sein, das kann MySQL sein, das kann ein Microsot SQL Server sein, den der Linux-Server über's Netzwerk sehen kann, das kann Postgres sein, das kann ein Oracle-Server sein, etc. Nur mit Access wirst Du nicht weit kommen.

Achja, ganz generell, unabhängig von der aktuellen Problematik: ich würde auf PHP5 aktualisieren.

Viele Grüße,
Christian

[1] Ja, es läuft unter Wine, aber Wine kapselt die Windows-Applikationen ja ab - ich bezweifle, dass das ODBC innerhalb von Wine mit dem ODBC außerhalb kommunizieren kann.