Mailinglisten-Archive |
Hallo, ich habe mir so eine Abstraktionsschicht selber geschrieben (noch zu PHP3-Zeiten). Damit erreiche ich eine große Unabhängigkeit von der installierten PHP Version auf dem jeweiligen Server. Es ist einwenig aufwendiger, da bei mir der Programmierer mitdenken muß. So lagere ich die Anpassungen an den jeweiligen sql-syntax vor der query in Funktionen aus. Das geschieht zur Zeit für das Datum und Dezimalwerte, da ja die DBS mit unterschiedlichen Dezimaltennern arbeiten (Oracle ','; MySQL '.'). Ein Beispiel für die Datumsfunktion: function datumformatschreiben($cfgbase, $tag, $monat, $jahr) { if ($cfgbase=="oracle") $datumformat="to_date('$tag.$monat.$jahr', 'DD.MM.YYYY')"; if ($cfgbase=="mysql") $datumformat="'"."$jahr-$monat-$tag"."'"; return $datumformat; } Beim Auslesen wird der ermittelte Wert an eine Funktion weitergegeben, die ihn in ein Array mit fester Struktur presst, dass anschließend weiterverarbeitet wird. function datumteilen($cfgbase, $datum) { if ($cfgbase=="oracle") $dataarray = explode(".", $datum); if ($cfgbase=="mysql") { $dat = explode("-", $datum); $dataarray[0] = $dat[2]; $dataarray[1] = $dat[1]; $dataarray[2] = $dat[0]; } return $dataarray; } Ansonsten benutzte ich den kleinsten gemeinsamen Nenner ANSI SQL 92. Die Anpassung erfolgt einmalig nur in den Funktionen und das wars dann. Am schlimmsten ist das erstmalige Anlegen der Tabellen unter dem jeweiligen DBS. Anschließen kann man ja ein Dump ziehen. Gruss Ron Opitz
php::bar PHP Wiki - Listenarchive