mysql_close()

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • mysql_close()

    Gruß Leute, ich hab folgendes Problem:
    Auf meiner Seite soll der Code bei einem Fehler (aus bestimmten Gründen, die ich jetzte hier nich auflisten möchte)
    per die(); "abgebrochen werden".
    Vorher hätte ich aber gerne ein mysql_close.
    da kommt dann aber immer "invalid ressource irgendwas".

    Mein konkretes Problem is jetzte, die DB-verbindung wird in der class session hergestellt.
    mysql_close(???????);
    was muss ich tun, um die db verbindung zu schließen?
    und das im code irgendwo AU?ERHALB der sessionclass?
    PHP-Code:
    .....
    class 
    session {
       var 
    $lifeTime;
       var 
    $dbHandle;
       function 
    open($savePath$sessName) {
           
    $this->lifeTime get_cfg_var("session.gc_maxlifetime");
           
    $dbHandle = @mysql_connect("localhost","user","passwd");
           
    $dbSel = @mysql_select_db("usr_web11_1",$dbHandle);
           if(!
    $dbHandle || !$dbSel)
               return 
    false;
           
    $this->dbHandle $dbHandle;
           return 
    true;
       }
    ....... 
    *blubb*

  • #2
    nach einem die() kommt normalerweise gar nichts mehr, auch kein versuch mysql_close() auszuführen...

    Kommentar


    • #3
      nein^^

      das mysql_close soll vor dem dier(); kommen.
      *blubb*

      Kommentar


      • #4
        übergib den handle zur db-verbindung explizit an mysql_close.

        Kommentar


        • #5
          PHP-Code:
          $mysqlcon=mysql_connect();
          //db-Verbindung schließen
          mysql_close($mysqlcon);
          die(); 
          funktioniert das so.

          wie kann ich den wert aus ner klasse herausgeben?
          *blubb*

          Kommentar


          • #6
            OffTopic:
            hauptsache objektorientiert.


            lege eine public methode getHandler() an.

            Kommentar


            • #7
              hö?
              was sol ich machen.

              du das mit dem objektoreintiert is mir wurscht.
              der code is nämich nich von mir, is einfach nur nen sessionhandler, denn ich mir heruntergeladen hab.

              funktioniert der CODE-SChnippsel von meinem letzten post?

              ich checks net
              *blubb*

              Kommentar


              • #8
                Ein einfaches mysql_close() schließt die zuletzt geöffnete Verbindung. Wenn du garantiert nur eine offen hast, genügt
                PHP-Code:
                mysql_close();
                die(); 
                Wenn du schon mit einer Klasse arbeitest:
                Da die Property dbHandle nicht public ist, wäre folgendes möglich:
                PHP-Code:
                if (is_resource($dbObj->dbHandle))
                    
                mysql_close($dbObj->dbHandle);
                die(); 
                Im größeren Kontext einer Applikation ist ein DB-Objekt aber entweder einzigartig, d.h. alle Verbindungen werden von einem Objekt gesteuert oder es gibt für jede Verbindung ein DB-Objekt und dann bestenfalls eine Registry für die Objekte.
                Und natürlich sollte die DB-Klasse eine close-Methode haben, die bedingungslos gerufen werden kann, d.h. die sich nicht mockiert, wenn gar keine Verbindung besteht.
                PHP-Code:
                $db->close_all();
                die(); 
                PHP-Code:
                foreach ($db_registry as $dbObj)
                    
                $dbObj->close();
                die(); 

                Und nun das Wort zum Sonntag: Vor die() macht mysql_close() überhaupt keinen Sinn, denn beim Beenden des Scripts werden automatisch alle Verbindungen getrennt.

                Kommentar


                • #9
                  Da die Property dbHandle nicht public ist, wäre folgendes möglich:
                  anderherum?

                  Kommentar


                  • #10
                    asso.
                    danke für deine hilfe.
                    *blubb*

                    Kommentar


                    • #11
                      @penizillin: danke. finger schneller als hirn.

                      @TO: Merksatz: Was mysql_close() schließen könnte, schließt die() sowieso.

                      Kommentar

                      Lädt...
                      X