Mailinglisten-Archive |
Hallo Thorsten, Thorsten Koch schrieb: > wir wollen in der zweiten Version eines Projektes jetzt auch einen > Datenbank-Abstraktionslayer verwenden. Und Überlegungen, die Du > angestellt hast, sind uns natürlich auch nicht fremd. :-) > Der > Abstraktionslayer muss solche Funktionen bieten, wie einen WHERE-Clause > aus einem Array zu erstellen und das nicht zu kompliziert. Da sollten > dann natürlich nicht nur Vergleiche wie "=" möglich sein, sondern auch > LIKE und <> und > oder < und so weiter. > Natürlich sollten auch irgendwie JOINs möglich sein. Ja, das ist nämlich ein wichtiger Punkt. Die Abstraktionsschicht sollte den SQL-Befehl aus übergebenen Werten zusammenbauen und nicht schon SQL übergeben bekommen, auch nicht SQL mit Platzhaltern. Das Problem ist nur - aber vielleicht bin ich blind - ich habe solch eine weitgehende Abstraktion nur bei PEAR DB gefunden: http://pear.php.net/manual/en/package.database.db-dataobject.php Wie löst man das also mit ADOdb oder Creole? Bei Creole gibt es z.B. set...()-Funktionen, aber das ist doch nur der halbe Weg zum Ziel: $stmt = $conn->prepareStatement("INSERT INTO users (name, passwd) VALUES (:name, :pass)"); $stmt->setString(":name", $name); $stmt->executeUpdate(); -> http://creole.phpdb.org/docs/api/creole/PreparedStatement.html ADOdb hat z.B. GetUpdateSQL() und GetInsertSQL(), aber was ist mit GetSelectSQL() etc.: -> http://phplens.com/lens/adodb/docs-adodb.htm#getupdatesql > Ich kann ja in 2-3 Monaten mal von den Erfahrungen mit der > Datenbankabstraktion berichten und sagen, ob wir uns für ADODB oder > Creole (siehe letztes PHP Magazin) entschieden haben. Ja, das wäre interessant zu erfahren. :-) Warum zieht Ihr PEAR DB oder MDB nicht in Betracht? Und welche Vorteile seht Ihr jeweils bei ADOdb und Creole? Viele Grüße Lutz
php::bar PHP Wiki - Listenarchive