Datenbankabstraktion mit ADODB

Mit ADODB ist es möglich, PHP-Anwendungen von der Verwendung einer speziellen Datenbank, wie zum Beispiel MySQL zu abstrahieren, um auch den Einsatz von anderen Datenbanken zu ermöglichen. Dazu wird die gesamte Kommunikation mit der Datenbank über ADODB abgewickelt. ADODB sorgt dann dafür, dass die Abfragen in das für die jeweils ausgewählte Datenbank passende Format gewandelt werden und Abfragen nach den Feldinformationen einer Tabelle überall gleiche Resultate liefern.

Dazu verwendet ADODB an vielen Stellen sogenannte Meta-Funktionen, die wie im Fall von MetaColumns ein Array mit ADODB-Objekten zurückliefert, die jeweils die Eigenschaften eines Feldes der Tabelle beinhalten.  Interessant ist auch die  Methode MetaType, die Datenbank-übergreifende Typ-Informationen für Felder liefert. So kann man auch mit dieser Information arbeiten, um z.B. die Darstellung der Inhalte einzelner Felder zu steuern, obwohl die Feld-Typen bei verschiedenen Datenbanken unterschiedlich genannt werden.

Es lohnt sich auf jeden Fall, einmal einen Blick auf diesen Abstraktions-Layer zu werfen, denn es kann ja nie schaden, Anwendungen zu entwickeln, die nicht auf eine einzige Datenbank festgelegt sind. Zudem wird ADODB auch von bekannten Projekten (Mambo, TikiWiki, phpWiki) verwendet, um die Datenbankabstraktion zu realisieren. Es sollte also für den Einsatz in großen Projekten geeignet sein. Für den Einstieg bietet es sich an, die Dokumentation von ADODB zu konsultieren, die auch ein kurzes deutschsprachiges Tutorial enthält.

Die Installation von ADODB ist übrigens kinderleicht. Für den Anfang reicht es, einfach das ADODB-File zu includen.

include(„adodb.inc.php“);

Sollte man mit der gebotenen Performance nicht zufrieden sein, so kann es sich lohnen, die auch angebotene PHP-Extension zu verwenden, die zum Teil in C geschrieben ist und damit bis zu 75% schneller laufen soll.

Soweit für den Moment, die ersten Schritte mit ADODB sind eigentlich genauso unkritisch wie die Installation, wenn mir dennoch in Zukunft noch größere Probleme auffallen sollten werde ich berichten.