Mailinglisten-Archive |
Hallo, >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? > > Eine Datenbankabstraktionsschicht hat nur dann einen Sinn, wenn man sich auf die standardisierte Grundsyntax der SQL-Befehle begrenzt. Ansonsten geht natürlich die Möglichkeit der Datenbankunabhängigkeit verloren. >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... > > Eine interessante Variante bietet das Propel (http://propel.phpdb.org). Dies ist eine Abstraktionsschicht (für PHP 5), welche noch weiter geht als die "normalen" Datenbankabstraktionen. So werden Objekte für die Datenverwaltung verwendet. Um Abfragen durchzuführen braucht man normallerweise kein SQL. Stattdessen verwendet man Kriterien (Criteria Objekte) um sie festzulegen. Auch Relationen werden unterstützt. Nur bei sehr komplexen Abfragen lässt sich SQL kaum vermeiden. Gruß, David
php::bar PHP Wiki - Listenarchive