Halihallo
Ich überlege, wie ich in Zukunft DB-Verbindungen etwas einfacher einbinden, und vor allem SQL-Abfragen einfacher verwenden kann, unter anderem auch automatisch die MySQL Fehler ausgebe.
Wollte nur mal hören, wie Ihr das macht, irgendwie bekomme ich keine vernünftige Methode zusammen:
[...]
Also ich hab das mal so gelöst:
Bei vielen Programmen braucht man eh nur ein Connection-Objekt; dehalb hab ich einfach einige globale Variablen für den dbh - Handler und eventuelle statement-handler (die gibt's glaub in php nicht). Meine "verbindung.php" hat dann einige Funktionen, welche diese globalen Variablen "verwalten", diese sind:
connect
sql
getRow (Datenbestand (beim SELECT) sequentiell auslesen)
getLenght / getCount (Anzahl der Records bei Select, bzw. Anzahl geänderter Records bei UPDATE z. B.)
disconnect
andere Lösung:
du bastelst dir eine eigene Klasse als Datenbank-Interface mit obengenannten Methoden. Jedesmal, wenn du eine DB-Connection brauchst, erstellst du eine neue Instanz der Klasse und kannst diese verwenden.
Aber irgerndwie ist das so nicht optimal. OK, für Inserts schön und gut, aber was wenn es etwas individueller wird, und ich z.B. die Mysql_insert_id möchte? Oder noch komplizierter, wenn ich SELECT verwende, Dann brauche ich ja $res außerhalb der Funktion(wie?), um die Daten letztendlich auch zu bekommen! Jetzt ist die Frage, ob ich die Funktion ausschmücke, sowas der Art
if (substr(0,6)=="SELECT"){
// noch ein bisschen mehr...}
Ist das nötig??? - Mit den globalen Variablen, sollte dies auch ohne möglich sein. Zudem, was ist, wenn du vor dem SELECT noch einige Leerzeichen hast???
Mich interessiert mal Eure Meinung dazu, und wie Ihr sowas löst! Und überhaupt, was sagt Ihr zu meinem Versuch, auch mit den Fehlermeldungen und mit dem mysql_ping()...
Hm. Warum mysql_ping? - Geht das nicht einfacher, wenn du eine globale Variable hast, welche die Werte 0/1 annehmen kann und somit sagt, ob die connection bereits aufgebaut wurde, oder nicht? - mysql_ping braucht nämlich wesentlich mehr performance, weil es einen Ping übers Netzwerk sendet.
Zu den Fehlermeldungen: Wenn ein Fehler auftaucht, sollte das Programm gleich abgebrochen werden.
Viele Grüsse
Philipp