Wann sollte ich eine Datenbankverbindung in PHP schließen?

8

Ich bin nichts wie ein PHP-Entwickler, aber ich muss es verwenden und ich bin mir nicht wirklich bewusst, wie PHP die Speicherzuweisung während der Sitzung behandelt.

Ich arbeite an einer Anwendung, die nach einer HTTP-Authentifizierung fragt. Sobald Sie eingeloggt sind, können Sie Daten über eine nette Schnittstelle manipulieren.
Jemand hat mir in einem anderen Post gesagt, dass ich die mysql-Datenverbindung nach jeder Ausführung nicht schließen sollte, aber ich weiß nicht, wie diese Verbindung bleiben wird, während ich diese App benutze, da ich auf der Server-Seite keine Ahnung habe, was PHP hält Speicher oder nicht.

Also meine Frage ist, sollte ich ein Singleton verwenden, um eine Verbindung zur db herzustellen und nie zu schließen (weil ich nie wissen werde, wenn die Anwendung nicht verwendet wird. Oder sollte ich mit dem stehen, was ich heute mache: Verbindung öffnen - & gt ; Anweisung ausführen - & gt; Verbindung schließen.

PS: Ich benutze mysqli

Bearbeiten 1 :
Meine Anwendung ist Design mit MVC-Muster Bedeutung:

%Vor%

Dieses Muster erlaubt der Ansicht, mit Daten nur über die control.php zu interagieren, die dann eine Funktion von der Datenbank.php zu SELECT oder EDIT data aufrufen. Mit der Erklärung, die du mir gibst, sollte ich sagen:

%Vor%

in database.php , aber diese Seite wird geladen, wenn Daten ausgewählt oder geändert werden müssen. Daher wird sie nur für kurze Zeit ausgeführt. Dies bedeutet, dass die Verbindung am Ende der Anforderung noch geschlossen wird.

Was eine präzisere Frage darüber gibt, wo ich den von Ihnen bereitgestellten Code einfügen sollte, oder ist mein Muster in PHP relevant?

    
Kiwy 10.12.2013, 10:50
quelle

2 Antworten

7

Erstellen Sie niemals eine neue Verbindung für jede Abfrage. Sie müssen es nicht einmal manuell schließen.

Erstellen Sie einfach die Verbindung am Anfang Ihrer Seite

werfen Sie einen Blick auf: Wie verbinden Sie sich effizient mit mysql in PHP, ohne sich bei jeder Abfrage neu zu verbinden

Sie können dies verwenden:

%Vor%

wird aufgerufen, wenn die Seite geschlossen wird

    
Gianluca Ghettini 10.12.2013, 10:53
quelle
2

Aus der PHP Mysqli Dokumentation :

  

Eine Verbindung zwischen einem Clientprozess und einer Datenbank kann von einem Clientprozess wiederverwendet werden, anstatt mehrfach erstellt und zerstört zu werden. Dies reduziert den Overhead ...

    
EyalAr 10.12.2013 11:04
quelle

Tags und Links