Hello,
das Problem ist ein ganz anderes: Du versuchst hier nur hohle Wrapper(-Klassen) für bereits vorhandene Funktionalitäten vorzunehmen, diese also nur mit einem anderen Aspekt anzubieten. Das ist aber nicht der Sinn einer Datenbankklasse.
mMn muss eine Datenbankklasse im Webumfeld vor allem diese Dinge bewerkstelligen:
- Allgemeine Bereitstellung der Connectivity zum Datenbankserver und der Datenbank
- Bereitstellung diverser Informationen aus dem Scheme der Datenbank für die Applikation
dazu gehören die Tabellen und ihre Relationen, die Datensatzbeschreibungen der Tabellen - Gewährleistung konkurrierender Zugriffe, insbesonders derjenigen mit Zeitlücke, also das
logische pessimistische Locking oder die Überwachung durch Conflictcounter, Timestamp oder
sonstige gleichwertige Maßnahmen, wenn man es nicht durch Trigger und Stored Procedures
lösen kann (was ich persönlich für sauberer halte) - Verwaltung von vertikalen Zugriffsrechten, , wenn man es nicht durch Trigger und Stored
Procedures lösen kann (was ich persönlich für sauberer halte) - Logging der tatsächlichen Fehlerursachen für die Adminsitration und Bereitstellung von
netten Textchen und Strategien für die Endbenutzerseite - Aufbereitung von Daten für die Übernahmen aus und die Anzeige in HTML (Escaping, Radios,
Checkboxen, Selects, Feldlängenbeschränkungen, Defaults, ...)
Grundsätzlich sollte dabei immer eine Lösung bevorzugt werden, bei der die Aufgaben nicht durch die API, sondern durch die Datenbank (Trigger, Stored Procedures) erledigt werden. Da dies aber nicht bei allen in Webumfeld üblichen DBMS möglich ist, ist es eine schöne Aufgabe[tm] für eine Datenbankklasse.
Alle Zugriffe dürfen dann NUR noch über die Datenbankklasse stattfinden.
Liebe Grüße aus dem Cyberspace
Tom vom Berg