Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Fatal error: Call to a member function real_escape_string() on a non-objec

Einklappen

Neue Werbung 2019

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

  • [Erledigt] Fatal error: Call to a member function real_escape_string() on a non-objec

    Hi,

    entschuldigt bitte, daß ich gleich die Fehlermeldung als Titel eingegeben habe.

    Also ich erhalte die Fehlermeldung, wenn ich folgendes mache:

    -in dem Konstruktor einer Klasse stelle ich die Datenbankverbindung her, die dann alle Funktionen der Klasse benutzen konnen.
    Allerdings ist da die Überlegung bzw. die Instanziierung des Objektes $mysqli wohl nicht richtig, denn spätestens wo ich die Methode real_escape_string($email) anwenden will, kommt es zu der Fehlermeldung.

    PHP-Code:

    class data{

        private 
    $mysqli;
        function 
    __construct(){
            
    $mysqli DBConnect::getConnection();
        }
        
        
    //LOGIN 
        
    public function login($email,$password){

            
    $email $mysqli->real_escape_string($email);
           ........
          }
    }
    // End class 

    Die Funktionsaufruf login() ist wie folgt:
    PHP-Code:
    $data = new data();
                        
    $login $data->login($this->request['email'],$this->request['password']);[/CODE][QUOTE


  • #2
    - Bitte Realcode posten! Das läuft sowieso nicht
    PHP-Code:
    __consturct(){ 
    - Beim Posten bitte bbCode verwenden ([php] für PHP, [html] für HTML, [code] für den Rest (Dumps, Queries..)) und Code einrücken.


    Bitte beachten: Forenrichtlinien
    --

    „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
    Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


    --

    Kommentar


    • #3
      Oh sorry, das mit dem bbcode war mir nicht klar.

      Das andere war ein Tippfehler mit dem construct();
      Immer noch die selbe Fehlermeldung.

      Realcode kann ich nicht postenn, weil es einfach zu lang wäre.

      Jo vielen dank.

      Kommentar


      • #4
        Das andere war ein Tippfehler mit dem construct();
        Das bedeutet, dass wir hier keinen echten Code sehen. Das ist sehr unclever, weil man i.A. dabei gleich weitere Fehler einbaut und sich Fehlermeldungen auf falsche Bereiche beziehen.

        Wie auch immer, Du benutzt schlicht und ergreifend nicht die Property, sondern eine lokale Variable. Ende des Mythos.
        --

        „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
        Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


        --

        Kommentar


        • #5
          Ok, danke.

          mit
          PHP-Code:
          $this->mysqli->real_scape_string($email); 
          klappt es.

          Kommentar


          • #6
            Nicht mit Deinem obigen Konstruktor
            --

            „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
            Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


            --

            Kommentar


            • #7
              achja

              PHP-Code:
              function __construct(){
                      
              $this->mysqli DBConnect::getInstance();
                  } 

              Kommentar


              • #8
                Btw. wäre dies der bessere Stil:

                PHP-Code:
                class data // Name ist Mist!

                    
                private $mysqli;


                    function 
                __construct(MySQLi $db){
                        
                $this->mysqli $db;
                    }
                    
                // etc
                }

                if (
                false === $db DBConnect::getInstance()) {
                  new 
                Exception ('DB connection error');


                $auth = new data($db);
                                    
                $login $auth->login($this->request['email'] , $this->request['password']); 
                --

                „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


                --

                Kommentar

                Lädt...
                X