Wann sollte ich schließen einer Datenbank-Verbindung in PHP?
Ich bin nichts, wie ein php-Entwickler, aber ich habe es zu benutzen und ich bin mir nicht wirklich bewusst, wie PHP-Griff Speicherzuweisung während der Sitzung.
Arbeite ich an einer Anwendung, die Sie Fragen, für eine HTTP-Authentifizierung, sobald Sie eingeloggt sind, können Sie Daten manipulieren, die durch eine schöne Oberfläche.
Jemand hat mir gesagt auf einem anderen Beitrag, dass ich nicht in der Nähe der mysql-Daten-Verbindung nach jeder Ausführung, aber ich weiß nicht, wie diese Verbindung zu bleiben ist Speicher, der während der Verwendung dieses app, weil in der server-Seite habe ich keine Ahnung, was PHP hält im Gedächtnis, oder nicht.
Also meine Frage ist sollte ich ein singleton zu verbinden zur db und niemals in der Nähe (weil ich nie weiß, wenn die Anwendung nicht in Gebrauch ist. Oder sollte ich stehen mit dem, was ich heute mache: öffnen-Verbindung --> execute-Anweisung --> enge Verbindung.
PS: ich benutze mysqli
Bearbeiten 1:
Meine Anwendung ist design mit MVC-pattern Bedeutung :
|''''''''''| |'''''''''''''| |''''''''''''''|
| view.php | ==> | control.php | ==> | database.php |
|----------| |_____________| |______________|
Muster ermöglichen den Blick auf die Interaktion mit Daten, die nur durch die control.php
die rufen dann eine Funktion aus database.php zu SELECT
oder EDIT
Daten. mit der Erklärung, die Sie mir geben, ich sollte:
public function __destruct(){
mysql_close($this->connection);
}
innen database.php
, aber die Seite laden, wenn es eine Notwendigkeit, zu wählen oder ändern von Daten, es ist also nur ausgeführt, für eine kurze Zeit, was bedeutet, es wird noch enger die Verbindung am Ende der Anfrage.
Gibt eine genauere Frage, wo soll ich den Frieden der code, den Sie bereitstellen, oder muss mein Muster relevant PHP ?
- das ist der Destruktor der Klasse durchführen, die Datenbank zu verwalten, finden Sie unter: das ist, weil in einem MVC pattern-CONTROL steuert VIEW und MODEL (Datenbank). In Ihrem Schema-ANSICHT-Steuerelemente-STEUERUNG und MODELL. Wenn Sie den code MVC der richtige Weg, das problem zu lösen, wird automatisch
- Und hier ist das Problem, das ich nicht code, mit dem Objekt, weil ich nicht wirklich weiß, wie es zu tun und ich habe nicht die Zeit zum konvertieren der app weder die Zeit, um zu lernen, wie es funktioniert.
- ahah ok, nee es ist sehr einfach zu wechseln, OOP, viele Probleme wie dieses zu lösen, indem Sie sich mit dem richtigen design 🙂
- In der Tat, ich verwendet, um ein java-devolepper und php ist einfach macht mich verrückt mit die nicht der Eingabe-variable und die Ungefähre Dinge. Also, wenn ich das erste mal versucht, um einige php-Objekt, fing ich an verrückt. Aber danke für alle raten. meine Anwendung wird nur für den internen Gebrauch und ohne wirkliche Problem, über die Leistung, aber ich war neugierig, wie es funktioniert. Jetzt weiß ich.
- eheh, ich weiß, ich denke, wir alle hatten das "schlechte Gefühl" beim Umgang mit PHP das erste mal. Was ich am meisten hasse von PHP-es ist seine lose-Typ-Ansatz... manchmal scheint es zu Programmieren in BASIC 🙂
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nie eine neue Verbindung erstellen für jede Anfrage, dass Sie auch nicht manuell zu schließen.
Erstellen Sie einfach die Verbindung am Anfang der Seite
haben Sie einen Blick auf: Wie kann man effizient eine Verbindung zu mysql in php ohne Rückbezug auf jede Anfrage
diese:
wird es genannt, wenn die Seite geschlossen ist
Aus der PHP-Mysqli -Dokumentation: