Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] MySQL Link Resource in einer statischen Variablen speichern

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

  • [Erledigt] MySQL Link Resource in einer statischen Variablen speichern

    Hallo zusammen,

    ich habe mir eine Klasse gebastelt, die die Kommunikation zur Datenbank übernimmt (connect(), query(), ...).
    Von dieser Klasse erben meine Business Objekte, die dann intern auf die Query-Methode zugreifen.

    Die connect()-Methode stellt wie üblich die Verbindung zur DB her und speichert dann die Link Resource in einer statischen Variablen $connid:
    PHP-Code:
            public static function connect($host$user$password$database) {
                
    $id = @mysql_connect($host$user$password);
                
    var_dump($id);
                if(
    mysql_error()) throw new Exception('Connection to database failed: '.mysql_error());
                else 
    self::$connid $id;
                if(!
    mysql_select_db($databaseself::$connid)) throw new Exception('database selection failed: '.mysql_error());
                
    self::$host $host;
                
    self::$user $user;
                
    self::$password $password;
                
    self::$database $database;
                
    mysql_query("SET NAMES 'utf8'"); 
                
    $c file_get_contents('log.txt');
                
    $c.= "neu Vebinden...\n";
                
    file_put_contents('log.txt'$c);
            } 
    Die query()-Methode greift nun beim Ausführen des Queries auf diese statische Variable zurück. Doch aus mir unerklärlichen Gründen ist die statische Variable dann keine MySQL Link Resource mehr.
    Darauf hin habe ich eine reconnect()-Methode eingebaut, die prüft, ob die statische Variable noch eine Link Resource ist und falls nein, eine neue Verbindung aufbaut:
    PHP-Code:
            public function query($sql) {
                
    self::reconnect();
                
    $this->sql $sql;
                
    $this->free();
                
    $this->result mysql_query($this->sqlself::$connid);
                if(!
    $this->result) {
                    
    $this->errno mysql_errno();#self::$connid);
                    
    $this->error mysql_error();#self::$connid);
                    
    $this->getError();
                } else {
                    
    $this->raiseCounter();
                }
            } 
    PHP-Code:
            public static function reconnect() {
                
    var_dump(self::$connid);
                if(
    get_resource_type(self::$connid) != 'mysql link') {
                    
    self::connect(self::$hostself::$userself::$passwordself::$database);
                }
            } 
    Mit dem Ergebnis, dass dutzende Verbindungen zur Datenbank, bzw. dutzende Male die connect()-Methode ausgeführt wird.

    Ich hoffe, mein Problem ist verständlich und ich habe keine Infos vergessen.

    Weiß jemand Rat? Wieso wird die Verbindung mehrfach hergestellt?

    Wie man sieht, habe ich ja schon ein bisschen versucht zu debuggen und auch eine Art Log dazugebastelt, hier mal ein Auszug:
    Code:
    neu Vebinden...
    init db...
    neu Vebinden...
    init User...
    neu Vebinden...
    init UserModel...
    neu Vebinden...
    init AdressesModel...
    neu Vebinden...
    init MembersModel...
    init db...
    Verbindung schließen...
    destruct db...
    neu Vebinden...
    neu Vebinden...
    init ProjectsManager...
    neu Vebinden...
    init ProjectsModel...
    neu Vebinden...
    init ProjectTypesModel...
    neu Vebinden...
    init AusbildungenModel...
    Verbindung schließen...
    destruct ProjectsManager...
    Verbindung schließen...
    destruct ProjectsModel...
    Verbindung schließen...
    destruct ProjectTypesModel...
    Verbindung schließen...
    destruct AusbildungenModel...
    neu Vebinden...
    neu Vebinden...
    init ProjectObject...
    neu Vebinden...
    init ProjectsModel...
    neu Vebinden...
    init ProjectTypesModel...
    neu Vebinden...
    init AusbildungenModel...
    neu Vebinden...
    init ProjectObject...
    neu Vebinden...
    init ProjectsModel...
    neu Vebinden...
    init ProjectTypesModel...
    neu Vebinden...
    init AusbildungenModel...
    neu Vebinden...
    init ProjectObject...
    neu Vebinden...
    init ProjectsModel...
    neu Vebinden...
    init ProjectTypesModel...
    neu Vebinden...
    init AusbildungenModel...
    neu Vebinden...
    init ProjectObject...
    neu Vebinden...
    init ProjectsModel...
    neu Vebinden...
    init ProjectTypesModel...
    neu Vebinden...
    init AusbildungenModel...
    neu Vebinden...
    init ProjectObject...
    neu Vebinden...
    init ProjectsModel...
    neu Vebinden...
    init ProjectTypesModel...
    neu Vebinden...
    init AusbildungenModel...
    neu Vebinden...
    init ProjectObject...
    neu Vebinden...
    init ProjectsModel...
    neu Vebinden...
    init ProjectTypesModel...
    neu Vebinden...
    init AusbildungenModel...
    neu Vebinden...
    init ProjectObject...
    neu Vebinden...
    init ProjectsModel...
    neu Vebinden...
    init ProjectTypesModel...
    neu Vebinden...
    init AusbildungenModel...
    neu Vebinden...
    init ProjectObject...
    neu Vebinden...
    init ProjectsModel...
    neu Vebinden...
    init ProjectTypesModel...
    neu Vebinden...
    init AusbildungenModel...
    neu Vebinden...
    init ProjectObject...
    neu Vebinden...
    init ProjectsModel...
    neu Vebinden...
    init ProjectTypesModel...
    neu Vebinden...
    init AusbildungenModel...
    neu Vebinden...
    init ProjectObject...
    neu Vebinden...
    init ProjectsModel...
    neu Vebinden...
    init ProjectTypesModel...
    neu Vebinden...
    init AusbildungenModel...
    neu Vebinden...
    init ProjectObject...
    neu Vebinden...
    init ProjectsModel...
    neu Vebinden...
    init ProjectTypesModel...
    neu Vebinden...
    init AusbildungenModel...
    Verbindung schließen...
    destruct ProjectObject...
    Verbindung schließen...
    destruct ProjectsModel...
    Verbindung schließen...
    destruct ProjectTypesModel...
    Verbindung schließen...
    destruct AusbildungenModel...
    Verbindung schließen...
    destruct ProjectObject...
    Verbindung schließen...
    destruct ProjectsModel...
    Verbindung schließen...
    destruct ProjectTypesModel...
    Verbindung schließen...
    destruct AusbildungenModel...
    Verbindung schließen...
    destruct ProjectObject...
    Verbindung schließen...
    destruct ProjectsModel...
    Verbindung schließen...
    destruct ProjectTypesModel...
    Verbindung schließen...
    destruct AusbildungenModel...
    Verbindung schließen...
    destruct ProjectObject...
    Verbindung schließen...
    destruct ProjectsModel...
    Verbindung schließen...
    destruct ProjectTypesModel...
    Verbindung schließen...
    destruct AusbildungenModel...
    Verbindung schließen...
    destruct ProjectObject...
    Verbindung schließen...
    destruct ProjectsModel...
    Verbindung schließen...
    destruct ProjectTypesModel...
    Verbindung schließen...
    destruct AusbildungenModel...
    Verbindung schließen...
    destruct ProjectObject...
    Verbindung schließen...
    destruct ProjectsModel...
    Verbindung schließen...
    destruct ProjectTypesModel...
    Verbindung schließen...
    destruct AusbildungenModel...
    Verbindung schließen...
    destruct ProjectObject...
    Verbindung schließen...
    destruct ProjectsModel...
    Verbindung schließen...
    destruct ProjectTypesModel...
    Verbindung schließen...
    destruct AusbildungenModel...
    Verbindung schließen...
    destruct ProjectObject...
    Verbindung schließen...
    destruct ProjectsModel...
    Verbindung schließen...
    destruct ProjectTypesModel...
    Verbindung schließen...
    destruct AusbildungenModel...
    Verbindung schließen...
    destruct ProjectObject...
    Verbindung schließen...
    destruct ProjectsModel...
    Verbindung schließen...
    destruct ProjectTypesModel...
    Verbindung schließen...
    destruct AusbildungenModel...
    Verbindung schließen...
    destruct ProjectObject...
    Verbindung schließen...
    destruct ProjectsModel...
    Verbindung schließen...
    destruct ProjectTypesModel...
    Verbindung schließen...
    destruct AusbildungenModel...
    Verbindung schließen...
    destruct ProjectsManager...
    Verbindung schließen...
    destruct ProjectsModel...
    Verbindung schließen...
    destruct ProjectTypesModel...
    Verbindung schließen...
    destruct AusbildungenModel...
    Verbindung schließen...
    destruct ProjectObject...
    Verbindung schließen...
    destruct ProjectsModel...
    Verbindung schließen...
    destruct ProjectTypesModel...
    Verbindung schließen...
    destruct AusbildungenModel...
    neu Vebinden...
    init MenuManager...
    neu Vebinden...
    init MenuModel...
    neu Vebinden...
    init MenuCaptionsModel...
    Verbindung schließen...
    destruct MenuManager...
    Verbindung schließen...
    destruct MenuModel...
    Verbindung schließen...
    destruct MenuCaptionsModel...
    neu Vebinden...
    neu Vebinden...
    init MenuObject...
    neu Vebinden...
    init MenuModel...
    neu Vebinden...
    init MenuCaptionsModel...
    neu Vebinden...
    init MenuObject...
    neu Vebinden...
    init MenuModel...
    neu Vebinden...
    init MenuCaptionsModel...
    neu Vebinden...
    init MenuObject...
    neu Vebinden...
    init MenuModel...
    neu Vebinden...
    init MenuCaptionsModel...
    neu Vebinden...
    init MenuObject...
    neu Vebinden...
    init MenuModel...
    neu Vebinden...
    init MenuCaptionsModel...
    neu Vebinden...
    init MenuObject...
    neu Vebinden...
    init MenuModel...
    neu Vebinden...
    init MenuCaptionsModel...
    neu Vebinden...
    init MenuObject...
    neu Vebinden...
    init MenuModel...
    neu Vebinden...
    init MenuCaptionsModel...
    neu Vebinden...
    init MenuObject...
    neu Vebinden...
    init MenuModel...
    neu Vebinden...
    init MenuCaptionsModel...
    Verbindung schließen...
    destruct MenuManager...
    Verbindung schließen...
    destruct MenuModel...
    Verbindung schließen...
    destruct MenuCaptionsModel...
    neu Vebinden...
    init ProjectsManager...
    neu Vebinden...
    init ProjectsModel...
    neu Vebinden...
    init ProjectTypesModel...
    neu Vebinden...
    init AusbildungenModel...
    Verbindung schließen...
    destruct ProjectsManager...
    Verbindung schließen...
    destruct ProjectsModel...
    Verbindung schließen...
    destruct ProjectTypesModel...
    Verbindung schließen...
    destruct AusbildungenModel...
    Gruß
    Max


  • #2
    Du hast einen var_dump drinnen aber nirgendwo in deiner Ausgabe ist was davon zu sehen. Was steht denn in der self::$connid jeweils drin, wenn es zum Reconnect kommt? Du überschreibst self::$connid auch wirklich nirgendwo?
    www.php-maven.org PHP und Maven vereint: Build/Deploy/Produktion/Konfiguration, Projekt Management, CI, PHPUnit, zahlreiche Frameworks
    Twitter @ https://twitter.com/#!/mepeisen und Facebook @ http://t.co/DZnKSUih

    Kommentar


    • #3
      Oh, stimmt... das wurde nicht ins Log geschrieben, sondern auf der Seite ausgegeben:
      Code:
      $id in connect(): resource(24) of type (mysql link)
      
      neu Vebinden...
      init db...
      $id in connect(): resource(24) of type (mysql link)
      
      neu Vebinden...
      init User...
      $id in connect(): resource(24) of type (mysql link)
      
      neu Vebinden...
      init UserModel...
      $id in connect(): resource(24) of type (mysql link)
      
      neu Vebinden...
      init AdressesModel...
      $id in connect(): resource(24) of type (mysql link)
      
      neu Vebinden...
      init MembersModel...
      $connid in reconnect(): resource(24) of type (mysql link)
      
      init db...
      $connid in reconnect(): resource(24) of type (mysql link)
      
      Verbindung schließen...
      destruct db...
      $connid in reconnect(): resource(24) of type (Unknown)
      
      $id in connect(): resource(99) of type (mysql link)
      
      neu Vebinden...
      $id in connect(): resource(113) of type (mysql link)
      
      neu Vebinden...
      init ProjectsManager...
      $id in connect(): resource(113) of type (mysql link)
      
      neu Vebinden...
      init ProjectsModel...
      $id in connect(): resource(113) of type (mysql link)
      
      neu Vebinden...
      init ProjectTypesModel...
      $id in connect(): resource(113) of type (mysql link)
      
      neu Vebinden...
      init AusbildungenModel...
      Verbindung schließen...
      destruct ProjectsManager...
      Verbindung schließen...
      destruct ProjectsModel...
      Verbindung schließen...
      destruct ProjectTypesModel...
      Verbindung schließen...
      destruct AusbildungenModel...
      $connid in reconnect(): resource(113) of type (Unknown)
      
      $id in connect(): resource(236) of type (mysql link)
      
      neu Vebinden...
      $id in connect(): resource(236) of type (mysql link)
      
      neu Vebinden...
      init ProjectObject...
      $id in connect(): resource(236) of type (mysql link)
      
      neu Vebinden...
      init ProjectsModel...
      $id in connect(): resource(236) of type (mysql link)
      
      neu Vebinden...
      init ProjectTypesModel...
      $id in connect(): resource(236) of type (mysql link)
      
      neu Vebinden...
      init AusbildungenModel...
      $id in connect(): resource(236) of type (mysql link)
      
      neu Vebinden...
      init ProjectObject...
      $id in connect(): resource(236) of type (mysql link)
      
      neu Vebinden...
      init ProjectsModel...
      $id in connect(): resource(236) of type (mysql link)
      
      neu Vebinden...
      init ProjectTypesModel...
      $id in connect(): resource(236) of type (mysql link)
      
      neu Vebinden...
      init AusbildungenModel...
      $id in connect(): resource(236) of type (mysql link)
      
      neu Vebinden...
      init ProjectObject...
      $id in connect(): resource(236) of type (mysql link)
      
      neu Vebinden...
      init ProjectsModel...
      $id in connect(): resource(236) of type (mysql link)
      
      neu Vebinden...
      init ProjectTypesModel...
      $id in connect(): resource(236) of type (mysql link)
      
      neu Vebinden...
      init AusbildungenModel...
      $id in connect(): resource(236) of type (mysql link)
      
      neu Vebinden...
      init ProjectObject...
      $id in connect(): resource(236) of type (mysql link)
      
      neu Vebinden...
      init ProjectsModel...
      $id in connect(): resource(236) of type (mysql link)
      
      neu Vebinden...
      init ProjectTypesModel...
      $id in connect(): resource(236) of type (mysql link)
      
      neu Vebinden...
      init AusbildungenModel...
      $id in connect(): resource(236) of type (mysql link)
      
      neu Vebinden...
      init ProjectObject...
      $id in connect(): resource(236) of type (mysql link)
      
      neu Vebinden...
      init ProjectsModel...
      $id in connect(): resource(236) of type (mysql link)
      
      neu Vebinden...
      init ProjectTypesModel...
      $id in connect(): resource(236) of type (mysql link)
      
      neu Vebinden...
      init AusbildungenModel...
      $id in connect(): resource(236) of type (mysql link)
      
      neu Vebinden...
      init ProjectObject...
      $id in connect(): resource(236) of type (mysql link)
      
      neu Vebinden...
      init ProjectsModel...
      $id in connect(): resource(236) of type (mysql link)
      
      neu Vebinden...
      init ProjectTypesModel...
      $id in connect(): resource(236) of type (mysql link)
      
      neu Vebinden...
      init AusbildungenModel...
      $id in connect(): resource(236) of type (mysql link)
      
      neu Vebinden...
      init ProjectObject...
      $id in connect(): resource(236) of type (mysql link)
      
      neu Vebinden...
      init ProjectsModel...
      $id in connect(): resource(236) of type (mysql link)
      
      neu Vebinden...
      init ProjectTypesModel...
      $id in connect(): resource(236) of type (mysql link)
      
      neu Vebinden...
      init AusbildungenModel...
      $id in connect(): resource(236) of type (mysql link)
      
      neu Vebinden...
      init ProjectObject...
      $id in connect(): resource(236) of type (mysql link)
      
      neu Vebinden...
      init ProjectsModel...
      $id in connect(): resource(236) of type (mysql link)
      
      neu Vebinden...
      init ProjectTypesModel...
      $id in connect(): resource(236) of type (mysql link)
      
      neu Vebinden...
      init AusbildungenModel...
      $id in connect(): resource(236) of type (mysql link)
      
      neu Vebinden...
      init ProjectObject...
      $id in connect(): resource(236) of type (mysql link)
      
      neu Vebinden...
      init ProjectsModel...
      $id in connect(): resource(236) of type (mysql link)
      
      neu Vebinden...
      init ProjectTypesModel...
      $id in connect(): resource(236) of type (mysql link)
      
      neu Vebinden...
      init AusbildungenModel...
      $id in connect(): resource(236) of type (mysql link)
      
      neu Vebinden...
      init ProjectObject...
      $id in connect(): resource(236) of type (mysql link)
      
      neu Vebinden...
      init ProjectsModel...
      $id in connect(): resource(236) of type (mysql link)
      
      neu Vebinden...
      init ProjectTypesModel...
      $id in connect(): resource(236) of type (mysql link)
      
      neu Vebinden...
      init AusbildungenModel...
      $id in connect(): resource(236) of type (mysql link)
      
      neu Vebinden...
      init ProjectObject...
      $id in connect(): resource(236) of type (mysql link)
      
      neu Vebinden...
      init ProjectsModel...
      $id in connect(): resource(236) of type (mysql link)
      
      neu Vebinden...
      init ProjectTypesModel...
      $id in connect(): resource(236) of type (mysql link)
      
      neu Vebinden...
      init AusbildungenModel...
      Verbindung schließen...
      destruct ProjectObject...
      Verbindung schließen...
      destruct ProjectsModel...
      Verbindung schließen...
      destruct ProjectTypesModel...
      Verbindung schließen...
      destruct AusbildungenModel...
      Verbindung schließen...
      destruct ProjectObject...
      Verbindung schließen...
      destruct ProjectsModel...
      Verbindung schließen...
      destruct ProjectTypesModel...
      Verbindung schließen...
      destruct AusbildungenModel...
      Verbindung schließen...
      destruct ProjectObject...
      Verbindung schließen...
      destruct ProjectsModel...
      Verbindung schließen...
      destruct ProjectTypesModel...
      Verbindung schließen...
      destruct AusbildungenModel...
      Verbindung schließen...
      destruct ProjectObject...
      Verbindung schließen...
      destruct ProjectsModel...
      Verbindung schließen...
      destruct ProjectTypesModel...
      Verbindung schließen...
      destruct AusbildungenModel...
      Verbindung schließen...
      destruct ProjectObject...
      Verbindung schließen...
      destruct ProjectsModel...
      Verbindung schließen...
      destruct ProjectTypesModel...
      Verbindung schließen...
      destruct AusbildungenModel...
      Verbindung schließen...
      destruct ProjectObject...
      Verbindung schließen...
      destruct ProjectsModel...
      Verbindung schließen...
      destruct ProjectTypesModel...
      Verbindung schließen...
      destruct AusbildungenModel...
      Verbindung schließen...
      destruct ProjectObject...
      Verbindung schließen...
      destruct ProjectsModel...
      Verbindung schließen...
      destruct ProjectTypesModel...
      Verbindung schließen...
      destruct AusbildungenModel...
      Verbindung schließen...
      destruct ProjectObject...
      Verbindung schließen...
      destruct ProjectsModel...
      Verbindung schließen...
      destruct ProjectTypesModel...
      Verbindung schließen...
      destruct AusbildungenModel...
      Verbindung schließen...
      destruct ProjectObject...
      Verbindung schließen...
      destruct ProjectsModel...
      Verbindung schließen...
      destruct ProjectTypesModel...
      Verbindung schließen...
      destruct AusbildungenModel...
      Verbindung schließen...
      destruct ProjectObject...
      Verbindung schließen...
      destruct ProjectsModel...
      Verbindung schließen...
      destruct ProjectTypesModel...
      Verbindung schließen...
      destruct AusbildungenModel...
      Verbindung schließen...
      destruct ProjectsManager...
      Verbindung schließen...
      destruct ProjectsModel...
      Verbindung schließen...
      destruct ProjectTypesModel...
      Verbindung schließen...
      destruct AusbildungenModel...
      Verbindung schließen...
      destruct ProjectObject...
      Verbindung schließen...
      destruct ProjectsModel...
      Verbindung schließen...
      destruct ProjectTypesModel...
      Verbindung schließen...
      destruct AusbildungenModel...
      $id in connect(): resource(716) of type (mysql link)
      
      neu Vebinden...
      init MenuManager...
      $id in connect(): resource(716) of type (mysql link)
      
      neu Vebinden...
      init MenuModel...
      $id in connect(): resource(716) of type (mysql link)
      
      neu Vebinden...
      init MenuCaptionsModel...
      Verbindung schließen...
      destruct MenuManager...
      Verbindung schließen...
      destruct MenuModel...
      Verbindung schließen...
      destruct MenuCaptionsModel...
      $connid in reconnect(): resource(716) of type (Unknown)
      
      $id in connect(): resource(749) of type (mysql link)
      
      neu Vebinden...
      $id in connect(): resource(749) of type (mysql link)
      
      neu Vebinden...
      init MenuObject...
      $id in connect(): resource(749) of type (mysql link)
      
      neu Vebinden...
      init MenuModel...
      $id in connect(): resource(749) of type (mysql link)
      
      neu Vebinden...
      init MenuCaptionsModel...
      $id in connect(): resource(749) of type (mysql link)
      
      neu Vebinden...
      init MenuObject...
      $id in connect(): resource(749) of type (mysql link)
      
      neu Vebinden...
      init MenuModel...
      $id in connect(): resource(749) of type (mysql link)
      
      neu Vebinden...
      init MenuCaptionsModel...
      $id in connect(): resource(749) of type (mysql link)
      
      neu Vebinden...
      init MenuObject...
      $id in connect(): resource(749) of type (mysql link)
      
      neu Vebinden...
      init MenuModel...
      $id in connect(): resource(749) of type (mysql link)
      
      neu Vebinden...
      init MenuCaptionsModel...
      $id in connect(): resource(749) of type (mysql link)
      
      neu Vebinden...
      init MenuObject...
      $id in connect(): resource(749) of type (mysql link)
      
      neu Vebinden...
      init MenuModel...
      $id in connect(): resource(749) of type (mysql link)
      
      neu Vebinden...
      init MenuCaptionsModel...
      $id in connect(): resource(749) of type (mysql link)
      
      neu Vebinden...
      init MenuObject...
      $id in connect(): resource(749) of type (mysql link)
      
      neu Vebinden...
      init MenuModel...
      $id in connect(): resource(749) of type (mysql link)
      
      neu Vebinden...
      init MenuCaptionsModel...
      $id in connect(): resource(749) of type (mysql link)
      
      neu Vebinden...
      init MenuObject...
      $id in connect(): resource(749) of type (mysql link)
      
      neu Vebinden...
      init MenuModel...
      $id in connect(): resource(749) of type (mysql link)
      
      neu Vebinden...
      init MenuCaptionsModel...
      $id in connect(): resource(749) of type (mysql link)
      
      neu Vebinden...
      init MenuObject...
      $id in connect(): resource(749) of type (mysql link)
      
      neu Vebinden...
      init MenuModel...
      $id in connect(): resource(749) of type (mysql link)
      
      neu Vebinden...
      init MenuCaptionsModel...
      Verbindung schließen...
      destruct MenuManager...
      Verbindung schließen...
      destruct MenuModel...
      Verbindung schließen...
      destruct MenuCaptionsModel...
      $id in connect(): resource(905) of type (mysql link)
      
      neu Vebinden...
      init ProjectsManager...
      $id in connect(): resource(905) of type (mysql link)
      
      neu Vebinden...
      init ProjectsModel...
      $id in connect(): resource(905) of type (mysql link)
      
      neu Vebinden...
      init ProjectTypesModel...
      $id in connect(): resource(905) of type (mysql link)
      
      neu Vebinden...
      init AusbildungenModel...
      $connid in reconnect(): resource(905) of type (mysql link)
      
      Verbindung schließen...
      destruct ProjectsManager...
      Verbindung schließen...
      destruct ProjectsModel...
      Verbindung schließen...
      destruct ProjectTypesModel...
      Verbindung schließen...
      destruct AusbildungenModel...
      var_dump() wird einmal in connect() und reconnect() aufgerufen.

      Kommentar


      • #4
        Code:
        Verbindung schließen...
        destruct db...
        $connid in reconnect(): resource(24) of type (Unknown)
        Soll ich was dazu schreiben oder siehst du es selbst?
        www.php-maven.org PHP und Maven vereint: Build/Deploy/Produktion/Konfiguration, Projekt Management, CI, PHPUnit, zahlreiche Frameworks
        Twitter @ https://twitter.com/#!/mepeisen und Facebook @ http://t.co/DZnKSUih

        Kommentar


        • #5
          Mh, ok, soweit so klar *G* Naja, so halb wegs. Warum wird das Objekt da schon zerstört? Soweit ich weiß, werden Objekte doch entweder durch unset() oder automatisch am Ende des Skripts zerstört. Das Ende des Skripts kann es ja noch nicht sein, danach werden ja noch Objekte initialisiert (und nicht wenig). Und über unset() lösche ich auch keine Referenz auf ein db-Objekt.

          Kommentar


          • #6
            Keine Ahnung, ich kenne deinen Code ja nicht.

            Es ist jedoch extrem fragwürdig, etwas, was statisch initialisiert wurde, im Destruktor wegzuräumen.
            www.php-maven.org PHP und Maven vereint: Build/Deploy/Produktion/Konfiguration, Projekt Management, CI, PHPUnit, zahlreiche Frameworks
            Twitter @ https://twitter.com/#!/mepeisen und Facebook @ http://t.co/DZnKSUih

            Kommentar


            • #7
              Zitat von mepeisen Beitrag anzeigen
              Keine Ahnung, ich kenne deinen Code ja nicht.

              Es ist jedoch extrem fragwürdig, etwas, was statisch initialisiert wurde, im Destruktor wegzuräumen.
              Mhm, stimmt eigentlich. Aber wenn ich das richtig verstehe werden doch, wenn der Destruktor von db aufgerufen wird, auch die statischen Attribute gelöscht, oder? Zumindest meine ich das in diesem Fall zu sehen.

              Ich habe es jetzt so gelöst, dass ich die Link Resource einfach in meiner Registry speichere. Jetzt wird die "Verbindung" nur noch einmal aufgebaut.

              Kommentar


              • #8
                Nein. Werden sie nicht. Statisch ist statisch (zur Klasse zugehörig) und das hat per se nichts mit dem Destruktor zu tun. Dieser bezieht sich auf die Objekt-Instanzen. Die Objekt-Instanzen haben aber einen anderen Lebenszyklus als die Klasse selbst.

                Du hast mutmasslich deinen Destruktor überschrieben und disconnect explizit aufgerufen.
                www.php-maven.org PHP und Maven vereint: Build/Deploy/Produktion/Konfiguration, Projekt Management, CI, PHPUnit, zahlreiche Frameworks
                Twitter @ https://twitter.com/#!/mepeisen und Facebook @ http://t.co/DZnKSUih

                Kommentar


                • #9
                  Hmm... nunja, anyway. Es tut auf jeden Fall jetzt

                  Dankö!

                  Kommentar

                  Lädt...
                  X