Ben: Objektorientierter Datenbankzugriff

Beitrag lesen

Hallo zusammen

Ich wollte mal fragen, wie man/ihr den Datenbankzugriff im Zeitalter der Objektorientierung professionell regelt.

Angenommene Ausgangslage:
Ich habe verschiedene Klassen, die verschiedenartigste DB-Zugriffe machen. Dazu habe ich eine index.php-Datei, in der ich über includes alle Verarbeitungen mache. In dieser möchte ich nur einmal einen DB-Handle aufmachen und diesen bis zum Schluss benutzen.

Fragen:
1. Ich nehme an, ihr benutzt mysqli. Nutzt ihr das prozedural oder objektorientiert?

2. Falls objektorientiert: Wenn ich wie beschrieben den handle nur einmal machen will, übergebt ihr diesen dann an jede Klasse oder macht ihr in gar global?

3. Wie regelt ihr den DB-Zugriff in den Klassen drin:

Schreibt ihr die SQL-Statements direkt rein und macht auch die Verarbeitung dort? Also z.B. $mysqli->query("SELECT...");

oder

Lagert ihr die SQL-Statements aus (definiert Konstanten) und macht die Verarbeitung drin? $mysqli->query(KONSTANTE)? Vorteil könnte hier die einfache Anpassung der Queries sein.

oder

Schreibt ihr die SQL-Statements rein und lagert die Verarbeitung in eine DB-verarbeitungs-Klasse aus? $dbklasse->query("SELECT...");. Vorteil wäre hier die leichtere Austauschbarkeit der DB z.B. zu PostgreSQL. Allerdings wäre mir nicht klar, wie die Resultate zurückkommen (als Array?).

oder

Nutzt ihr irgendeinen dynamischen Zugriff, der euch die Queries anhand von euren Angaben direkt zusammebaut, die Abfragen+Verarbeitung macht und das dann zurückliefert? Wobei ich mir das schwierig vorstelle, da ich z.B. einmal ein Update mit 2 Attributen und dann ein SELECT mit 5 Where-Bedingungen, Order by und Group habe.

Ich hoffe es ist einigermassen klar was ich meine.

Gruss Ben