Ankündigung

Einklappen
Keine Ankündigung bisher.

meine mysql-klasse ...

Einklappen

Neue Werbung 2019

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

  • meine mysql-klasse ...

    hallo erstmal!
    ich hab mal wieder ein problem mit meiner mysql klasse!
    hier mal die klassen (nur der wichtigste teil):
    PHP-Code:
    <?php
    class MySQL {
        public static function 
    query($sql$buffered 1$limit 0$offset 0) {
            
    $key sprintf('°%s°%d°%d°%d°'$sql$buffered$limit$offset);
            if(!
    is_object(self::$queryInstances[$key]))
                
    self::$queryInstances[$key] = new Query($sql$buffered$limit$offset);
            return 
    self::$queryInstances[$key];
        }
    }
    class 
    Query extends MySQL {
        private 
    $result;
        public function 
    __construct($sql$buffered 1$limit 0$offset 0) {
            
    parent::connect();
            if(
    $limit != 0)
                
    $sql .= " LIMIT ".$offset.", ".$limit.";";
            if(
    $buffered == 1)
                
    $this->result mysql_query($sql);
            else
                
    $this->result mysql_unbuffered_query($sql);
            if(!
    is_resource($this->result))
                
    parent::error('Invalide SQL: '.$sql);
        }
        public function 
    fetch() {
            
    var_dump($this); // aus debug zwecken
            
    return mysql_fetch_assoc($this->result);
        }
    }
    //test aufruf:
    $res MySQL::query("SELECT * FROM user");
    print_r($res->fetch());
    $res2 MySQL::query("SELECT * FROM tpls");
    print_r($res2->fetch());
    $res3 MySQL::query("SELECT * FROM tpls");
    print_r($res3->fetch());
    ?>
    das gibt leider nur das aus:
    object(Query)#1 (2) {
    ["resultrivate"] => resource(3) of type (mysql result)
    }
    Array
    (
    [id] => 1
    //restliche daten
    )
    object(Query)#3 (2) {
    ["resultrivate"] => resource(4) of type (mysql result)
    }
    Array
    (
    [name] => standard
    //restliche daten
    )
    object(Query)#3 (2) {
    ["resultrivate"] => resource(4) of type (mysql result)
    }
    wie man sieht fehlt der fetch von $res3 (, der der selbe ist wie der von $res2) und es ist mir unerklärlich weil wie man oben sieht die instanz und das result von mysql übereinstimmt!
    hab schon sehr sehr viel versucht, bitte helft mir!
    danke

    eagleScripts.de

  • #2
    Ich weiß nicht obs hilft, aber du erzeugst ja 2x den selben $key (selbe SQL-Anweisung, selber Key) und bekommst deshalb bei $res3 eben das Result von $res2.

    Edit: Äh achso das wusstest du ja schon.

    Aber wie sollen wir den Fehler sehen, wenn du uns die fetch()-Methode nicht zeigst? Fehlschlagen könnte die natürlich, wenn du nur einen Datensatz in der tpls-Tabelle hast, weil dann hat ja der $res->fetch() schon den Inhalt abgeholt.

    Kommentar


    • #3
      Zitat von Zergling
      Ich weiß nicht obs hilft, aber du erzeugst ja 2x den selben $key (selbe SQL-Anweisung, selber Key) und bekommst deshalb bei $res3 eben das Result von $res2.
      ja das ist ja so gewollt!
      aber warum krieg ich von $res2 den fetch und von $res3 nicht? obwohl sie ja das selbe result haben?!

      eagleScripts.de

      Kommentar


      • #4
        Sorry ich schreib hier Müll.

        Hmm irgendwie peil ichs nicht so ganz. Gibt $res3->fetch() kein var_dump aus? Mach doch statt print_r auch nen var_dump, dann siehste vielleicht mehr (z.B. wenn false zurück käme)

        Kommentar


        • #5
          Zitat von Zergling
          Fehlschlagen könnte die natürlich, wenn du nur einen Datensatz in der tpls-Tabelle hast, weil dann hat ja der $res->fetch() schon den Inhalt abgeholt.
          oh mann bin ich doof... hät ich lieber ne tabelle mit mehr einträgen zum testen benutzt.... aua! danke!

          eagleScripts.de

          Kommentar


          • #6
            Np

            Kommentar


            • #7
              Der Beitrag wurde verschoben, wegen...
              ... Postings im falschen Forum. Bitte beim nächsten Mal darauf achten..

              Bemerkung:
              Die gestellte Frage entspricht nicht dem Wissensstand eines/einer Fortgeschrittenen. Dazu: http://www.phpfriend.de/forum/viewtopic.php?t=21515

              moved to PHP - Anfänger
              mod = master of disaster

              Kommentar


              • #8
                LOL genau, der Code sieht auch echt nach nem Anfänger aus ^^

                Kommentar


                • #9
                  Zitat von Zergling
                  LOL genau, der Code sieht auch echt nach nem Anfänger aus ^^
                  ich sags mal so die Unterteilung nach Anfänger, Fortgeschritten und Profi ist doch eh frei Schnauze oder ist das irgendwo "genau" definiert? ^^
                  Gewisse Dinge behält man besser für sich, z.B. das man gewisse Dinge für sich behält.

                  Kommentar

                  Lädt...
                  X