I've had situations where database connections appeared to persist following php execution. So, now, my __destructor function explicitly contains a $cxn->close(). It hurts nothing, and helps avoid memory leaks.
(PHP 5, PHP 7, PHP 8)
mysqli::close -- mysqli_close — Schließt die zuvor geöffnete Datenbankverbindung
Objektorientierter Stil
Prozeduraler Stil
Schließt die zuvor geöffnete Datenbankverbindung.
Offene nicht-persistente MySQL-Verbindungen und Ergebnismengen werden automatisch geschlossen, wenn ihre Objekte entfernt werden. Das explizite Schließen offener Verbindungen und das Freigeben von Ergebnismengen ist optional. Es ist jedoch empfehlenswert, die Verbindung zu schließen, sobald das Skript alle seine Datenbankoperationen beendet hat, wenn nach dem Abrufen der Ergebnisse noch umfangreiche Verarbeitungsschritte erforderlich sind.
mysql
Nur bei prozeduralem Aufruf: ein von mysqli_connect() oder mysqli_init() zurückgegebenes mysqli-Objekt.
Gibt immer true
zurück.
Version | Beschreibung |
---|---|
8.0.0 |
Diese Funktion gibt nun immer true zurück; vorher gab sie bei einem
Fehler false zurück.
|
Beispiel #1 mysqli::close()-Beispiel
Objektorientierter Stil
<?php
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");
$result = $mysqli->query("SELECT Name, CountryCode FROM City ORDER BY ID LIMIT 3");
/* Schließen der Verbindung, sobald sie nicht mehr benötigt wird */
$mysqli->close();
foreach ($result as $row) {
/* Verarbeitung der aus der Datenbank abgerufenen Daten */
}
Prozeduraler Stil
<?php
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = mysqli_connect("localhost", "my_user", "my_password", "world");
$result = mysqli_query($mysqli, "SELECT Name, CountryCode FROM City ORDER BY ID LIMIT 3");
/* Schließen der Verbindung, sobald sie nicht mehr benötigt wird */
mysqli_close($mysqli);
foreach ($result as $row) {
/* Verarbeitung der aus der Datenbank abgerufenen Daten */
}
Hinweis:
mysqli_close() schließt keine persistenten Verbindungen. Weitere Details sind der Handbuchseite zu persistenten Datenbankverbindungen zu entnehmen.
I've had situations where database connections appeared to persist following php execution. So, now, my __destructor function explicitly contains a $cxn->close(). It hurts nothing, and helps avoid memory leaks.