Hallo!
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
Hm, ne Idee, damit würde ich das meiste bekommen.
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.
Ja, sowas wie Andrés Vorschlag, oder? Ich muß mal gucken was mir mehr liegt, das mit den Funktionen sieht wie ich finde auf den ersten Blick etwas leichter und weniger zu schreiben aus. Ich weiß auch nicht, ob OOP für sowas so optimal ist, wenn ich nicht irre ist das auf alle Fälle langsamer und außerdem weiß ich nicht, was man von den ganzen Klasen.. usw. hat, wenn man eh immer nur ein Script hat, welches von vorne bis hinten für sich als eigenes Programm ausgeführt ausgeführt wird, das ist nunmal ein Job für eine Scriptsprache, wie der Name schon sagt, ich weiß nicht ob OOP das an so einer Stelle nur verkomplizieren.
Genau wie z.B. eine Warenkorb Klasse, das ist ja in der Theorie wirklich ganz nett, aber in der Praxis? Ich gebe was in den Warenkorb... und dann? Wenn ich ein weiteres Produkt suche muß ich auf eine andere Datei wechseln, die Datei mit der Warenkorb-Klasse wird beendet, die Daten sind weg - wozu soll das dann gut sein? Mag sein das das in Java irgendwie funktioniert, aber man kann ja nicht eine Klasse wie eine Variable über mehrere Seiten hinweg mitschleppen, oder in einer Session speichern, oder? Mir ist bis jetzt noch kein Einsatzzweck bei einem Webobjekt wie einen DB-gestützen Online-Shop untergekommen, wo ich Klassen auch nur irgendwie für besonders nützlich oder vereinfachend empfunden habe.
Aber vielleicht habe ich ja noch ein allgemeinerers Verständnis-Problem mit OOP ;-)
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
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.
Stimmt, ich muß bei meinem Ansatz einfach fragen if($link), das sagr ja dasselbe aus ;-)
Zu den Fehlermeldungen: Wenn ein Fehler auftaucht, sollte das Programm gleich abgebrochen werden.
Das mach ich ja durch die();
Vielen Dank!
Grüße
Andreas