mysqli – Muss ich wirklich $result->close(); & $mysqli->close();?
Lesezeit: 3 Minuten
James
Habe gerade angefangen mysqli zu benutzen. Wenn ich mit kleinen Datensätzen auf kleinen Websites arbeite (in Bezug auf den Datenverkehr), muss ich diese wirklich ständig verwenden?
$result->close();
$mysqli->close();
Ist für jemanden, der benutzerdefinierte PHP- und MySQL-Arbeiten ohne Framework durchführt, mysqli die allgemein bevorzugte Art der Interaktion mit MySQL?
PHP schließt alle geöffneten Dateien und DB-Verbindungen am Ende des Skripts. Es empfiehlt sich, dies manuell zu tun, wenn Sie mit den Verbindungen fertig sind, aber es ist keine Katastrophe, wenn Sie dies nicht tun. Wenn Sie eine DB-Verbindung haben, die im gesamten Skript verwendet wird, können Sie sie auch offen lassen.
+1 auf PDO
Es scheint sie nicht automatisch zu schließen, wenn das Skript durch einen schwerwiegenden Fehler beendet wird
– Tofandel
22. März 2021 um 19:34 Uhr
Ixalmida
Laut aktueller Dokumentation sollte zusätzlich zu $mysql->close() immer $mysql->kill() verwendet werden.
Wie bereits erwähnt, ist es eine gute Praxis, Ihre eigenen Aufräumarbeiten durchzuführen, aber die Dokumentation, soweit ich weiß, erwähnt zum Zeitpunkt des Schreibens nicht, dass Sie es verwenden sollten. +1 für gute Praxis.
– PatomaS
20. Oktober 2012 um 4:59 Uhr
Die PDO-Behauptung erscheint mir bestenfalls zweifelhaft, und ich bin mir ziemlich sicher, dass Sie die letzten Zeitstempel von PDO-bezogenen Dateien in ihrem GitHub-Repo sehen würden. Haben Sie handfeste Beweise dafür?
– GordonM
24. Dezember 2013 um 21:21 Uhr
Zusätzlich zu dem, was @GordonM erwähnt, fehlt in der Antwort der Hinweis auf die Behauptung “Sie sollten immer $mysql->kill() verwenden”.
– hakre
24. Dezember 2013 um 21:25 Uhr
@hakre wenn er über die Dokumentation spricht mysqli::close Es ist nur ein Kommentar im Wörterbuch und wurde 8 Mal heruntergestuft: „Sie sollten immer die Funktion mysqli_kill() vor mysqli_close() verwenden, um den von PHP verwendeten TCP-Socket tatsächlich zu schließen und freizugeben. Garbage Collection nach der Skriptausführung noch mysqli_close() Beenden Sie den TCP-Socket nicht von selbst.”
– DJG22
30. April 2014 um 15:51 Uhr
Salzkörnchen … seien Sie sich bewusst, dass ich mich auf die Dokumentation einer alten PHP-Version bezog. Ich bin mir sicher, dass sich die Verbindungsbehandlung seitdem etwas geändert hat. Außerdem bin ich jetzt ein großer Befürworter von Laravel, also denke ich selten mehr über den Verbindungslebenszyklus nach. Es wäre ein Kinderspiel, PDO- mit MySQLi-Verbindungszeiten zu vergleichen, indem man einfach die Verbindung in der “.env”-Datei austauscht, obwohl ich keine wirkliche Lust habe, es zu versuchen.
– Ixalmida
9. April 2015 um 21:47 Uhr
Sie sollten es sich zur Gewohnheit machen, die Bereinigung richtig durchzuführen (Call Close, sobald Sie fertig sind), oder die Ressourcenlecks können sich allmählich ansammeln, bis sie die Leistung beeinträchtigen.
Soweit welche DB-Schicht, Lernen PDO sollte sich lohnen, da es gut gestaltet und mit allen wichtigen Datenbanken kompatibel ist.
+1 für gute Praktiken und Aufräumen. -1 auf pdo. Wenn es nicht wirklich nötig ist, fügen Sie einfach eine weitere Ebene der Komplexität hinzu.
– PatomaS
20. Oktober 2012 um 4:54 Uhr
Wenn der einzige Grund für die Verwendung von PDO die Kompatibilität mit anderen Datenbanken ist, dann ist dieser Grund für diejenigen von uns strittig, die niemals eine andere Datenbank verwenden und niemals verwenden werden.
– Vinzenz
26. Februar 2019 um 0:16 Uhr
Es empfiehlt sich, Ressourcen frühzeitig freizugeben, wenn sie nicht mehr benötigt werden. Dadurch kann verhindert werden, dass Ressourcen herausschauen, wenn mehr Benutzer gleichzeitig auf dieselbe Seite zugreifen
12285000cookie-checkmysqli – Muss ich wirklich $result->close(); & $mysqli->close();?yes