srob: MySQL: Wofür mysql_close()?

Moin!

In allen Beispielen zum MySQL-Zugriff via PHP sehe ich, daß im Skript eine Verbindung zur DB mit mysql_connect() geöffnet wird. Nie habe ich gesehen, daß diese Verbindung mit mysql_close() (oder sonstwie) geschlossen wird. Das wirft mir eine Lawine an Fragen auf:

-Was genau geschieht mit der geöffneten Verbindung nach Ablauf meines Skriptes?

-Wird sie automatisch geschlossen?

-Kann ich sie über mehrere Skripte persistent halten und weiternutzen oder öffne ich für jedes Skript eine neue Verbindung?

-Welchen Einfluß hat das Öffnen und Schließen von Verbindungen auf die Server-Performance?

Gibt es hier eine "amtlich-ordnungsgemäße" Vorgehensweise?

TIA Robert

  1. Hi

    -Was genau geschieht mit der geöffneten Verbindung nach Ablauf meines Skriptes?

    PHP beendet die Verbindung nach Beendigung des Scriptes Automatisch.

    -Wird sie automatisch geschlossen?

    Ja

    -Kann ich sie über mehrere Skripte persistent halten und weiternutzen oder öffne ich für jedes Skript eine neue Verbindung?

    Beides. Wenn Du PHP als Modul in Apache eingebunden hast, kannst du mit mysql_pconnect(host,user,pass) eine persistente Verbindung aufbauen. PHP prüft beim erneuten Herstellen einer Verbindung ob eine persistente Verbindung besteht und benutzt gegebenenfalls diese

    -Welchen Einfluß hat das Öffnen und Schließen von Verbindungen auf die Server-Performance?

    Ich denk mal keine, weiss es aber nicht genau

    Gibt es hier eine "amtlich-ordnungsgemäße" Vorgehensweise?

    Ich perslönlich stelle bei jedem Script die Verbindung wieder her, aber du kannst es halten wie es dir am besten passt.

    Ich hoffe das hilft dir weiter :)

    Gruss

    Ralf

    1. Hallo Ralf,

      -Welchen Einfluß hat das Öffnen und Schließen von Verbindungen auf die Server-Performance?
      Ich denk mal keine, weiss es aber nicht genau

      Da in dem Szenario, mit dem ich mich gerade beschäftige, wenige User gelegentlich auf die DB zugreifen, dürfte ein etwaiger Performance-Verlust durch zusätzliches Öffnen und nicht optimales Schließen von Verbindungen vorerst bedeutungslos sein.

      Ich hoffe das hilft dir weiter :)

      Si! Vielen Dank für die Infos!

      THX Robert

      1. Hallo Robert,

        ich denke es schadet grundsätzlich nicht, wenn man "nach getaner Arbeit aufräumt", zumal es an dieser Stelle nur eine Zeile Code kostet. Leute, die Deine Anwendung erweitern müssen, werden Dir dankbar sein. Evtl. könnte man auch Probleme verhindern, die entstehen könnten, wenn noch andere Applikationen auf die DB zugreifen.

        .. will aber nicht als Lehrer aufterten

        Gruß Frank

        1. Hi,

          ich denke es schadet grundsätzlich nicht, wenn man "nach getaner Arbeit aufräumt", zumal es an dieser Stelle nur eine Zeile Code kostet. Leute, die Deine Anwendung erweitern müssen, werden Dir dankbar sein. Evtl. könnte man auch Probleme verhindern, die entstehen könnten, wenn noch andere Applikationen auf die DB zugreifen.

          Da PHP die Verbindung eh schliesst, braucht man die Funktion nicht unbedingt. Wichtig wäre sie wahrscheinlich bei einer persistenten Verbindung. Aber wie gesagt es macht keinen unterschied, soll jeder halten wie er will

          Gruss

          Ralf