Ankündigung

Einklappen
Keine Ankündigung bisher.

Fatal error: Call to a member function fetchRecords() on a non-object in

Einklappen

Neue Werbung 2019

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

  • Fatal error: Call to a member function fetchRecords() on a non-object in

    Hallo zusammen,

    bekomme folgende Fehlermeldung :
    Fatal error: Call to a member function fetchRecords() on a non-object in ... on line 176

    der Code in line 176:
    PHP-Code:
        function makeAssociativeArray($key,$value,$table)
        {
            
    $this->sqlString "SELECT $key,$value FROM $table";
            
    $this->sqlString .= " ORDER BY $value";

            
    //        echo "sql:".$this->sqlString ."<br>";
            
    $data = array();
            if(
    $this->db->fetchRecords($this->sqlString) < 0)
                return 
    0;

            while(
    $record $this->db->nextRecord()) 
    Für jede Hilfe wäre ich dankbar.

    BG
    Maden

  • #2
    Evtl. vergessen zuerst eine neue Instanz zu erstellen, bevor Du folgendes machst: $this->db->fetchRecords ?

    Wolf29

    Kommentar


    • #3
      var_dump($this->db);
      vor den Aufruf von fetchRecords.

      Kommentar


      • #4
        Hallo wolf29,

        vielen Dank für den Tipp, aber ich bin noch ein NOOB ...

        Kannst Du mir das etwas erläutern?

        BG
        MAdien

        Kommentar


        • #5
          dir fehlt in deiner klasse ein

          private $db; und
          $this->db = new MySQLI(); oder so.. weis nicht welche datenbank du verwendest

          Kommentar


          • #6
            Danke für die antworten.
            Ist das so gemeint?

            PHP-Code:
            function makeAssociativeArray($key,$value,$table)
                {
                    
            $this->sqlString "SELECT $key,$value FROM $table";
                    
            $this->sqlString .= " ORDER BY $value";

                    
            //        echo "sql:".$this->sqlString ."<br>";
            var_dump($this->db); 
                    
            $data = array();
                    if(
            $this->db->fetchRecords($this->sqlString) < 0)
                        return 
            0;

                    while(
            $record $this->db->nextRecord()) 
            BG
            MAdien

            Kommentar


            • #7
              kannste nicht die ganze klasse posten? damit wir sehen wann bei dir eine instanz erstellt wird, wenn überhaupt und dann sehen wir eventuell ob es die methode fetchRecords exestiert

              Kommentar


              • #8
                PHP-Code:
                    function getRecord()
                    {

                        if((
                $num=$this->db->fetchRecords($this->sqlString)) < 0)
                            return -
                1;

                                if(
                $num >0)
                                {
                            
                $record $this->db->nextRecord();
                            
                $this->decodeRecord(&$record);
                            return 
                $record;
                                }
                                return 
                0;

                    }

                    function 
                getLastRecord($attr,$table)
                    {
                        
                $this->sqlString "SELECT MAX($attr) FROM $table";
                        if((
                $ret DBTable::getRecord()) == -1)
                            return 
                $ret;
                        
                //echo "Min ID: ".$ret[0]." <br>";
                        
                return $this->getRecordWithID($ret[0]);
                    }

                    function 
                getFirstRecord($attr,$table)
                    {
                        
                $this->sqlString "SELECT MIN($attr) FROM $table";
                        if((
                $ret DBTable::getRecord()) == -1)
                            return 
                $ret;
                        
                //echo "Min ID: ".$ret[0]." <br>";
                        
                return $this->getRecordWithID($ret[0]);
                    }



                    function 
                insertRecord()
                    {
                        if(
                $this->db->modifyRecords($this->sqlString)<0)
                            return 
                0;
                        return 
                1;
                    }


                    function 
                updateRecord()
                    {
                        if(
                $this->db->modifyRecords($this->sqlString)<=0)
                            return 
                0;
                        return 
                1;
                    }


                    function 
                deleteRecord()
                    {

                        if(
                $this->db->modifyRecords($this->sqlString)<0)
                            return 
                0;
                        return 
                1;
                    }


                    function 
                makeAssociativeArray($key,$value,$table)
                    {
                        
                $this->sqlString "SELECT $key,$value FROM $table";
                        
                $this->sqlString .= " ORDER BY $value";

                        
                //        echo "sql:".$this->sqlString ."<br>";
                        
                $data = array();
                        if(
                $this->db->fetchRecords($this->sqlString) < 0)
                            return 
                0;

                        while(
                $record $this->db->nextRecord())
                        {
                            
                $this->decodeRecord(&$record);
                            
                $data[$record[0]] = $record[1];
                        }
                        return 
                $data;
                    }

                    function 
                newRecord()
                    {
                        
                // implemented in derived classes
                    
                }

                    function 
                decodeRecord()
                    {
                        
                // implemented in derived classes
                    
                }

                    function 
                encodeRecord()
                    {
                        
                // implemented in derived classes
                    
                }


                Kommentar


                • #9
                  sehr schön.. und nun den wichtigen teil deiner klasse posten, müsste sowas sein wie

                  PHP-Code:
                  class Irgendeinname
                  {
                  private 
                  $db;
                  //und noch mehr sachen

                  function __construct(){
                  //irgend ein code
                  }


                  also auf jedenfall den abschnitt wo du siehst $this->db = new Irgendwas()

                  Kommentar


                  • #10
                    Meinst du diesen teil?

                    PHP-Code:
                    class DBTable
                    {

                        var 
                    $db;
                            var 
                    $msg="";
                        var 
                    $sqlString;
                            var 
                    $order="";


                            function 
                    DBTable($order="")
                        {
                                if(
                    $order != "")
                                    
                    $this->order=$order;
                        }

                        function 
                    setDB(&$dbobject)
                        {
                            
                    $this->db = &$dbobject;
                        }


                        function 
                    getError()
                        {
                            return 
                    $this->msg $this->db->errorMsg;
                        } 

                    Kommentar


                    • #11
                      ja genau und jetzt benötigen wir den teil wo du folgendes geschrieben hast(der steht nicht in der klasse, sondern müsste sich irgendwo anders befinden):

                      PHP-Code:
                      $db = new DBTable();
                      $db->setDB(mysql); 
                      auf jedenfall sieht es so aus, als ob du die setDB funktion,ich meinte methode, nicht verwendet hast

                      Kommentar


                      • #12
                        Zitat von madien Beitrag anzeigen
                        Meinst du diesen teil?

                        PHP-Code:
                        class DBTable
                        {

                            var 
                        $db;
                                var 
                        $msg="";
                            var 
                        $sqlString;
                                var 
                        $order="";


                                function 
                        DBTable($order="")
                            {
                                    if(
                        $order != "")
                                        
                        $this->order=$order;
                            }

                            function 
                        setDB(&$dbobject)
                            {
                                
                        $this->db = &$dbobject;
                            }


                            function 
                        getError()
                            {
                                return 
                        $this->msg $this->db->errorMsg;
                            } 

                        kann mir denn keiner felfen?

                        BG
                        MAdien

                        Kommentar


                        • #13
                          die fehlermeldung sagt aus, dass von der datenbank die methode nicht exestiert, vllt hast du eine falsche datenbank in den configs oder so eingestellt

                          Kommentar


                          • #14
                            Wie BlackScorp schon schrieb...

                            Wo instanzierst du die Klasse? Wird $db->setDB(mysql); irgendwo aufgerufen?

                            Kommentar


                            • #15
                              ...u.a. hat BlackScorp dir schon die entsprechenden Hinweise geben. Dir scheint eine Instanzierung zu fehlen und deswegen wollen wir wissen, ob Du es schon irgendwo gemacht hast (siehe BlackScorp). Wenn nicht, müsste es noch entsprechend eingefügt werden!

                              Wolf29

                              Kommentar

                              Lädt...
                              X