MySQL - Connection schließen oder nicht

son gohan

Erfahrenes Mitglied
Hallo,

ich habe gelesen das am Ende der Seite automatisch die Verbindung zur Datenbank geschlossen wird, aber ich kann mich auch erinnern das ich manchmal gelesen habe das einige empfehlen mit dem Befehl
PHP:
mysql_close($con);
es selber zu schliesen, wie sieht ihr das, was ist die bessere Loesung?
 
Zuletzt bearbeitet:
Grundsätzlich ist es sauberer, alle offenen Verbindung jedweder Art (Dateien, Sockets, Streams, etc.) explizit zu schließen. Ist einfach ein guter Programmierstil.

Wenn man ein Framework einsetzt, das die Datenbank-Verbindung in einer Klasse weg kapselt, sieht die Situation mitunter jedoch wieder anders aus. Dann trifft man bspw. im Destruktor der Datenbank-Verbindungsklasse die close-Methode an, und dann ist es überhaupt nicht notwendig, das selbst zu machen, im Gegenteil, das könnte sogar Probleme verursachen.

Kommt also auf die Situation an.

Aber das Thema hat eigentlich nichts in Relationale Datenbanken verloren ;-)
 
Und verschoben...
hat zwar nicht direkt was mit der Frage zu tun, aber warum nicht Mysqli oder PDO?
...
 
MySQLi ist vergleichbar mit dem, was du kennst,
nur dass es statt einzelnen mysql_-Funktionen alles in Klassen gepackt ist.
(hat schon weitere Unterschiede, aber prinzipiell selbe Vorgehensweise)

PDO ist eine Alternative, die unabhängig von der Datenbank ist.
Egal ob MySQL oder sonstwas dahinter ist die Programmierung ziemlich gleich,
und fertigprogrammierte Sachen können mit geringem Aufwand auf andere DBs umgestellt werden.
Nachteil ist, dass man uU. spezielle Funktionen einer DB, die andere nicht haben,
mit PDO nicht nutzen kann (soll ja alles so allgemeingültig wie möglich sein).

Grund, warum man mysql_... nicht mehr verwenden soll:
Von den Entwicklern kümmert sich keiner mehr drum, es ist schon relativ alt, usw.usw.
...und aus dem Grund gibts bei aktuellen PHP-Versionen schon Warnungsausgaben,
wenn man das verwendet.
Es existiert nur noch, damit alte, mit mysql_ geschriebene Programme noch funktionieren.
Neues sollte damit auf keinen Fall gemacht werden.
 
MySQLi ist vergleichbar mit dem, was du kennst,
nur dass es statt einzelnen mysql_-Funktionen alles in Klassen gepackt ist.
(hat schon weitere Unterschiede, aber prinzipiell selbe Vorgehensweise)

PDO ist eine Alternative, die unabhängig von der Datenbank ist.
Egal ob MySQL oder sonstwas dahinter ist die Programmierung ziemlich gleich,
und fertigprogrammierte Sachen können mit geringem Aufwand auf andere DBs umgestellt werden.
Nachteil ist, dass man uU. spezielle Funktionen einer DB, die andere nicht haben,
mit PDO nicht nutzen kann (soll ja alles so allgemeingültig wie möglich sein).

Grund, warum man mysql_... nicht mehr verwenden soll:
Von den Entwicklern kümmert sich keiner mehr drum, es ist schon relativ alt, usw.usw.
...und aus dem Grund gibts bei aktuellen PHP-Versionen schon Warnungsausgaben,
wenn man das verwendet.
Es existiert nur noch, damit alte, mit mysql_ geschriebene Programme noch funktionieren.
Neues sollte damit auf keinen Fall gemacht werden.

Danke das du das mir gesagt hast, den ich bin seit einigen Wochen schon an einer alten Website am umbauen und wuste das gar nicht.

Hat sich sonst noch was bemerkenswertes bei der PHP Benutzung geaendert in den letzten 2-3 Jahren worauf man achten sollte?

Ich denke das ich fuer die Benutzung von PHP Abfragen zur MySQL Datenbank nicht nur diese eine veraltete Funktion benutze, bestimmt ist alles moegliche schon veraltet was ich benutze, weil ich damals ca. 2009 verschiedene Tutorials benutzt hatte um das zu bauen.
 
Von welcher Version reden wir denn? Es hat sich da schon einiges getan, und es tut sich demnächst wieder etwas: PHP 5.5 kommt langsam aus dem Beta-Stadium raus.

Hier eine Übersicht, was PHP 5.5 bringen wird: http://www.tutorials.de/php/393714-vorschau-bringt-php-5-5-a.html

Falls du vor PHP 5.3 eingestiegen bist, hier noch eine große Neuerung: Namensräume für PHP-Klassen.

Und diverse andere nette Sachen: https://wiki.php.net/rfc Dort runter bis "Implemented" scrollen und soweit lesen, bis du an der Version ankommst, die für dich die letzte war :-)
 
Danke, ich denke ich werde am besten erst wieder die ganzen neuen Sachen lesen bevor ich weiter baue an meiner Seite.
 
Zurück