Gibt es einen Grund, warum ich die Verbindung nach einer Abfrage oder am Ende des Skripts schließen sollte?Warum mysqli_close() verwenden?
Was sind die Vorteile des Tuns/Nicht Tuns?
Gibt es einen Grund, warum ich die Verbindung nach einer Abfrage oder am Ende des Skripts schließen sollte?Warum mysqli_close() verwenden?
Was sind die Vorteile des Tuns/Nicht Tuns?
Die Verbindung (wenn nicht persistent) ist immer am Ende des Skripts geschlossen, so dass Sie es in der Theorie nicht selbst schließen müssen.
Wenn Ihr PHP-Skript viel Zeit benötigt, um es auszuführen, ist es eine gute Idee, die Verbindung zu schließen, wenn Sie keine Anfrage an die Datenbank mehr machen müssen - zumindest wenn die langen Berechnungen abgeschlossen sind nach den Abfragen.
Dies gilt insbesondere, wenn Ihre Anwendung auf einem gemeinsam genutzten Hosting bereitgestellt wird: Ihr Benutzerkonto kann im Allgemeinen nur einige wenige Verbindungen gleichzeitig geöffnet haben. (Die Anzahl der gleichzeitig geöffneten Verbindungen kann bei Shared Hosting ziemlich klein sein; auf privaten Servern ist sie in der Regel größer).
Der Grund, warum wir oft nicht schließen Verbindungen ourselfves ist:
Jedes Mal, wenn Sie Ihre Verbindungen nicht schließen, tötet ein DBA ein Kätzchen. – Eric
Jedes Mal, wenn ich keine Verbindung schließe, macht PHP die Arbeit für mich: -p PHP speichert die Kätzchen! ;; tatsächlich, was ich mit der Seite aus Blöcken gesagt habe, ist ziemlich wahr: Denken Sie über irgendein CMS nach, als Beispiel: Wann weiß ich, dass die Verbindung geschlossen sein sollte? Am Ende der Ausführung des PHP-Codes (nicht vorher, da einige "Blöcke" noch einige SQL-Abfragen ausführen müssen) ;; Also, die Verbindung von Hand zu schließen ist ziemlich nutzlos ... ;; außer natürlich, wenn du etwas erzeugst, das Zeit braucht und keine Datenbankabfrage macht, wie eine PDF oder so ähnlich. –
Der Vorteil ist, wenn Sie eine langwierige Verarbeitung durchführen, aber die Datenbank abfragen, dann hat es keinen Sinn, eine Verbindung offen zu halten. Dasselbe gilt für das Halten der Benutzersitzung (die andere Anfragen blockiert).
Ein Beispiel hierfür könnte die Erstellung eines großen PDF-Berichts sein. Dies kann 20-30 Sekunden dauern, um die Datei zu erstellen und zu schreiben, aber Sie erhalten alle Daten, die Sie in der ersten Sekunde benötigen.
Normalerweise können Sie es aber auch automatisch tun (vorausgesetzt, die Verbindung ist nicht dauerhaft).
Was ist dauerhafte Verbindung? mysqli (MYSQL_HOSTNAME, BENUTZERNAME, PASSWORT, DATENBANK); 'ist persistent? – Tahtakafa
Im Gegensatz zur mysql-Erweiterung bietet mysqli keine separate Funktion zum Öffnen persistenter Verbindungen. Um eine persistente Verbindung zu öffnen, müssen Sie beim Verbinden p: dem Hostnamen vorangehen. – Tarik
Wenn Sie über PHP-Skripte sprechen, kann ich vorschlagen, dieses Tag zu Ihrer Frage hinzuzufügen? –
Dupe: http://stackoverflow.com/questions/880885/close-mysql-connection-wichtig und verwandt: http://stackoverflow.com/questions/336078/php-mysql-when-is-the-best-time Von der Datenbank abtrennen – karim79