braucht man mysqli_close(), session_destroy() und $w->free_result?

2 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Mit mysqli_close wird eine zuvor aufgebaute Verbindung zur Datenbank geschlossen. Wenn du es nicht tust, wird es implizit so oder so durchgeführt, sobald das Skript beendet wird.

Es ist sinnvoll, die Datenbankverbindung zu schließen, wenn sie nicht mehr benötigt wird, da dann wieder ein Verbindungsplatz für einen anderen Prozess frei ist, der mit der Datenbank kommunizieren möchte.

Mit session_destroy wird eine aktuell laufende Session beendet und aus dem internen Speicher gelöscht. Das heißt, sie kann nachträglich auch nicht wiederbelebt werden. An sich reicht es aus, das $_SESSION-Array zu leeren. Generell ist es aber nicht schlecht, mit dem Beenden einer Session sofort und direkt alle Daten zu entfernen. Das Beispiel in der Dokumentation zeigt, wie es geht.

Bezüglich mysqli_free_result: Auch diese Funktion musst du nicht zwingend aufrufen, wenn man einmal davon ausgeht, dass intern genügend Ressourcen offenstehen (andernfalls könntest du auf Fehlerfälle/-meldungen stoßen) und kaum verwendet werden. Bei einer hohen Anzahl an aufeinanderfolgenden MySQL-Requests wäre es also zu empfehlen.

Insofern ist es, so wie bei den anderen beiden Funktionen vor allem eine gute Praxis, wenn du Ressourcen direkt freigibst, wenn du weißt, dass du sie nicht mehr benötigst.

Was es genau tut, weiß ich nicht. Doch auf einen schiefen Blick würde ich es reinnehmen.

Idee: Es werden allfällige Daten von einem Benutzer weggeräumt. Das klärt den Speicher, was ein Vorteil ist von der Ordnung her (man will ihn nicht zumüllen) als auch von der Sicherheit (es soll kein neuer Nutzer allenfalls Datenfragmente zugreifen können).

Woher ich das weiß:Beruf – ich arbeite schon sehr lange im EDV Bereich, viele Sparten

Was möchtest Du wissen?