phpbar.de logo

Mailinglisten-Archive

[php] Datenbankabstraktionsschichten und SQL - und PHP ;-)

[php] Datenbankabstraktionsschichten und SQL - und PHP ;-)

Lutz Zetzsche Lutz.Zetzsche at sea-rescue.de
Mit Feb 23 18:28:44 CET 2005


Hi,

ich beschäftige mich gerade mit den diversen
PHP-Datenbankabstraktionsschichten, also z.B. PEAR DB, PEAR MDB, PEAR MDB2
und ADOdb. Ich frage mich dabei, welchen realen Wert solche
Abstraktionsschichten eigentlich wirklich haben.

Mit der Auswahl einer Datenbankabstraktionsschicht mache ich mich ja
vielleicht theoretisch datenbankunabhängig, gleichzeitig binde ich mich
doch aber durch diese Auswahl auch mindestens genauso stark. Und ist eine
Datenbank in der Regel in Sachen Zukunftssicherheit nicht ein verläßlicher
Faktor als solch eine Abstraktionsschicht - wenn man einmal von
Anwendungen absieht, die tatsächlich auf verschiedenen Datenbanksystemen
laufen (können) müssen?

Hinzukommt für mich die entscheidende Frage: Wird der Einsatz einer
Datenbankabstraktionsschicht nicht von vielen Programmierern oft dadurch
wertlos gemacht, daß in der PHP-Programmierung SQL-Befehle hart kodiert
werden, am Besten noch mit datenbankspezifischen Funktionen etc.? Welchen
Wert hat die Abstraktionsschicht noch, wenn sie zwar die
datenbankspezifischen PHP-Funktionen kapselt, dann aber nur
datenbankspezifische SQL-Befehle durchschleust?

Wenn also eine Datenbankabstraktionsschicht in Frage käme, dann müßte
diese doch einen "SQL Query Builder" (wie z.B. PEAR DB_DataObject) haben
und nur der dürfte verwendet werden. Dann wiederum stellt sich die Frage,
wieweit ich mit diesem "Query Builder" dann bei komplizierten,
verschachtelten Datenbankabfragen über mehrere Tabellen komme...

Kommt man in der Praxis vielleicht dadurch am weitesten, daß man sich
selbst eine kleine, datenbankabhängige, austauschbare Zwischenschicht
("Wrapper") baut, die die datenbankspezifischen nativen PHP-Funktionen
kapselt und wo man auch die SQL-Befehle zusammenbastelt?

Gedanken über Gedanken, Fragen über Fragen. :-))) Kurze Frage also: Wie
seht Ihr das, und wie handhabt Ihr das bei Euren PHP-Anwendungen?


Viele Grüße

Lutz


php::bar PHP Wiki   -   Listenarchive