Puccini Geschrieben 8. Mai 2008 Geschrieben 8. Mai 2008 Hi! Ich hab eine php-site "Funktionen.php" da drin stehen alle PHP-Funktionen die ich für meine Site benötige. Dort gibt es unterschiedliche Funktionen die auf ein und die selbe datenbank zugreifen. Dabei rufe ich immer mysql_connect am anfang der funktion auf. ist das sinnvoll? am ende jeder funktion wird die verbindung geschlossen. oder reicht es wenn ich einmal auf meiner index.php eine verbindung herstelle und dann diese in den funktionen nutze?? Zitieren
baba007 Geschrieben 8. Mai 2008 Geschrieben 8. Mai 2008 wenn index.php in deinem browser geladen ist, kennt der server dich nicht mehr. Aber es geht über sessions: OOP php 5 Ich rate dir von sessions und connections ab. Das ist nicht sonderlich performant. Zitieren
Puccini Geschrieben 8. Mai 2008 Autor Geschrieben 8. Mai 2008 wie soll ich das dann machen?? :< Zitieren
geloescht_JesterDay Geschrieben 8. Mai 2008 Geschrieben 8. Mai 2008 (bearbeitet) Du kannst ein einziges mal eine Verbindung aufbauen und musst die dann eben an alle Funktionen übergeben. Dabei musst du aber bedenken, dass eine PHP-Seite nur solange aktiv ist bis sie ausgeliefert wurde. Ich gehe mal davon aus, dass deine Funktionen.php immer igendwo eingebunden ist, z.b. in der index.php (die dann immer aufgerufen wird). Dann reicht es aus das einmal zu machen. Aber, das dürfte eigentlich kaum Vorteile bringen. Moderne DBMS beherrschen das Connection Pooling. Die Verbindung wird also nicht jedesmal komplett neu aufgebaut wenn du mysql_connect mehrfach in einem Skript (u.U. sogar über mehrere Skripte, nacheinander aufgerufen, verteilt). Die Verbindung wird halb offen gehalten. Also nicht komplett, dann würden ja wohl bald keine mehr gehen, aber eine neue Verbindung die schonmal existiert hat geht schneller. Und DB-Verbindungen kannst du nicht in einer Session ablegen(*). EDIT: *: Stell dir das mal vor... Eine HTTP-Verbindung ist stateless. Eine Anfrage ist also immer unabhängig von allen anderen. Eine offene Verbindung in der DB speichern... du weißt ja nie ob danach noch eine abfrage kommt oder der User den Browser zu hat etc. Je nach Einstellung würde die Verbindung dann wochenlang offen gehalten (also theoretisch). Nene, eine Connection geht nicht in eine Session. Bearbeitet 8. Mai 2008 von JesterDay Zitieren
Lindi Geschrieben 17. Mai 2008 Geschrieben 17. Mai 2008 Es gibt auch die Möglichkeit der persistenten Verbindung zu MySQL. dazu einfach mysql_pconnect() verwenden. Der Witz bei dieser Verbindungsart ist, dass diese bestehen bleibt bzw. beim nächsten Skriptaufruf nach einer bestehenden Verbindung zuerst gesucht wird. Was auch möglich ist, ist die Datenbankanbindung selbst in eine Funktion zu packen (hat den Vorteil, dass diese nur in der Funktion dann gültig ist, also von außen kein Zugriff, Fehler lassen sich leichter Abfangen, Einfacher Aufruf für Datenbankabfragen). function mysql($query) { $connection = mysql_connect("host", "user", "passwort"); mysql_select_db("datenbank", $connection); $result = mysql_query($query, $connection); if($result) return $result; else return false; }[/PHP] Gruß und schönes Wochenende, Lindi Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.