Moin Moin !
Objekt, Methode ?
Naja, macht das Sinn die Abfrage so umständlich zu übergeben? wäre es nicht einfacher gleich mit mysql_query zu arbeiten?
Wenn Du Dein ganzes Leben lang nur mit einer Datenbank arbeiten willst: Ja.
Aber stell Dir mal vor, es gäbe eine magische Blackbox (so ähnlich wie IBMs "Business Adapter"), derem eines Ende Du auf jede beliebige Datenbank stecken kannst, und an deren anderem Ende alle Datenbanken exakt gleich aussehen.
Geil, oder?
Nun, PHP hat sowas in Ansätzen, Perl hat mit dem DBI sowas schon richtig gut, wenn auch die SQL-Dialekt-Unterschiede noch nicht ausgeglichen werden. ODBC ist ähnlich, aber in Sachen Performance leider unter aller Sau.
Warum mit OOP? Naja, auch ganz einfach: Für jede DB brauchst Du für die "Black Box" sowas wie connect, disconnect, und ein paar andere sehr DB-spezifische Funktionen. Und damit auf der Programmseite der "Black Box" alle DBs gleich aussehen, braucht Du noch einige Funktionen, die für alle oder zumindest viele Datenbanken identisch sind. Sowas mehrfach zu coden ist schlicht Unfug, wenn einem Vererbung zur Verfügung steht. Du baust einen Universaladapter, der mit keiner DB zurechtkommt (Basisklasse), und davon leitest Du einen DB-spezifischen Adapter ab, den Du mit DB-spezifischen Methoden erweiterst.
Ich programmiere seit etwa drei Jahren mit dem DBI und einem eigenen Dialekt-anpassendem Layer oberhalb von DBI. Mein Projekt lief ursprünglich nur auf Oracle, schnell sollte aus Kostengründen auch der MSSQL unterstützt werden. Kein Problem, nur an der Dialekt-Anpassung war einiges zu tun. Irgendwann habe ich dann gesagt: "Wenn es billig sein soll, warum dann MSSQL und nicht PostgreSQL?". Man nehme: Den vorhandenen Code, einige kleinere Änderungen an der Dialekt-Anpassung (in Sachen Dialekt sind Pg und Oracle recht ähnlich, was meine Anforderungen angeht), und schon läuft mein Programm mit drei Datenbanken von "umsonst und gut" über "billig und Schrott" bis "teuer und gut".
Alexander
Nein, ich beantworte keine Fragen per eMail. Dafür ist das Forum da.
Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so!"