Ankündigung

Einklappen
Keine Ankündigung bisher.

wie kann ich $db von der anderen Klasse aufrufen, damit ich keinen Fehler kriege?

Einklappen

Neue Werbung 2019

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

  • wie kann ich $db von der anderen Klasse aufrufen, damit ich keinen Fehler kriege?

    Hallo zusammen,
    ich habe Problem mit der getData-Mehtode in der Login-klasse und ich kriege den follgenden: "Notice: Undfined varaible: db" ich habe versucht die database.php einzubinden aber ich kriege dann den Fehler "Fatal error: Cannot redeclare class Database"

    wie kann ich $db in der "getData-Methode" von der anderen Klasse(Login) aufrufen, damit ich keinen Fehler bei der query kriege?

    Login-Klasse:
    PHP-Code:
    <?php

    class Login 
    {
        private 
    $username;
        private 
    $password;
        private 
    $cxn;    // Database object.

        
    function __construct($username$password)
        {
            
    // Set data
            
    $this->setData($username$password);

            
    // connect to db
            
    $this->connectToDb();

            
    //get Data
            
    $this->getData();
        }


       private function 
    setData($username$password){

                 
    $this->username $username;
                 
    $this->password $password;

       }

        private function 
    connectToDb(){

                include 
    'models/database.php';
                
    $vars "include/vars.php";
                
    $this->cxn = new Database($vars);

        }

        private function 
    getData(){

             
    $records = array();
             if (
    $results $db->query("SELECT * FROM  'users' WHERE    'username'  =   '$this->username' AND 'password' = '$this->password'")) {

                      if(
    $results-> num_rows){

                        while (
    $row $results-> fetch_object()) {
                                 
    $records[] = $row;
                                    }
                              
    $results->free();
                                }
                             } 
                       } 





          function 
    close(){
            
    $this->cxn->close_connect();
              }

     }
    Liebe Grüße,
    annamoon

  • #2
    Du hast doch das Datenbankobjekt schon als Objekteigenschaft... Einfach darauf zugreifen.

    PHP-Code:
    if ($results $this->cxn->query("SELECT * FROM  'users' WHERE    'username'  =   '$this->username' AND 'password' = '$this->password'")) 

    Kommentar


    • #3
      Danke für die schnelle Antwort

      Das waren eignetlich Klassen aus einem Tutorial.

      Ich habe auf sie zugegriffen und ich kriege folgenden Fehler:
      "Fatal error: Call to undefined method Database:: query()" was heißt das genau? wie kann ich diesen Fehler beseitigen?

      Kommentar


      • #4
        Die Klasse Database hat offensichtlich keine Methode die "query" heißt.

        Kommentar


        • #5
          Ich habe so eine klaine query Methode in meine Database Klasse geschrieben aber ich kriege aber $db ist dann undefineirt. Gibts eine Mögichkeit query-Mehtode aufzubauen ohne von der query-Methode auf das $db-Objekt zugreifen zu müssen?
          PHP-Code:
          public function query($data){
           
          $sql $db-> query($data);
           return 
          $sql;

          Kommentar


          • #6
            Nein.

            Kommentar


            • #7
              aber wie soll ich es am besten in meinem Fall machen?

              Kommentar


              • #8
                Woher kommt denn $db in der Klasse Database? Was für ein Objekt ist das? Wenn du $db als Objekteigenschaft hast, ist die Lösung die gleiche wie in #2 vorgestellt. (Fragt sich nur was die Klasse Database dann tatsächlich tut.)

                Kommentar

                Lädt...
                X