Problem mit returns

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

  • Problem mit returns

    Hallo @all,

    Ich versuche gerade mir eine eigene Datenbankzugriffsklasse zu basteln. Das Ganze funktioniert bis zum Connect auch ganz toll. Nur sobald ich versuche das Statement selber auszuführen, passiert nichts mehr:

    PHP-Code:
    class DBAccess
    {
        
    // Klassen – Eigenschaften
        
    private $c_sDB_Server  "";
        private 
    $c_sDB_Name  "";
        private 
    $c_sDB_User "";
        private 
    $c_sDB_Password "";
        private 
    $c_bConnected false;

        
    // Set-Methoden
        
    public function SetDB_Server$p_sDB_Server )
        {
            
    $c_sDB_Server $p_sDB_Server;
        }
        
        public function 
    SetDB_Name$p_sDB_Name )
        {
            
    $c_sDB_Name $p_sDB_Name;
        }
        
        public function 
    SetDB_User$p_sDB_User )
        {
            
    $c_sDB_User $p_sDB_User;
        }
        
        public function 
    SetDB_Password$p_sDB_Password )
        {
            
    $c_sDB_Password $p_sDB_Password;
        }
      
        
    // Klassen – Methoden
        
    public function Connect()
        {
            @
    $oDB = new mysqli($p_sDB_Server$p_sDB_User$p_sDB_Password$p_sDB_Name);
     
            if (
    mysqli_connect_errno()) 
            {
                
    printf("Verbindung fehlgeschlagen: %s\n"mysqli_connect_error());
                return 
    false;
            } 
            else
            {
                
    $c_bConnected true;
                echo 
    "Verbindung erfolgreich: " $oDB->host_info "\n</br>";
                echo 
    "Server: " $oDB->server_info;
                return 
    $oDB;
            }
        }
        
        public function 
    Disconnect($p_oDB)
        {
            if ( 
    $c_bConnected )
            {
                
    $p_oDB->close();
                
    $c_bConnected false;
            }
        }
        
        public function 
    ExecuteSQLSelect($p_oDB$p_sStatement)
        {
            if ( 
    $p_oDB )
            {
                if (
    $oResult $p_oDB->query($p_sStatement)) 
                {
                    return 
    $oResult
                }
            }
        }

    Das Problem scheint IMHO in der Rückgabe von $g_oResult zu liegen, bzw. in der Übergabe der Parameter in die Funktion ExecuteSQLSelect. Vielleicht habe ich aber auch nur einen ???

    PHP-Code:
     include 'class_DBAccess.php';
     
     
    $oDatenbank = new DBAccess();
     
     
    $oDatenbank->SetDB_Server("localhost");
     
    $oDatenbank->SetDB_Name("testdb");
     
    $oDatenbank->SetDB_User("root");
     
    $oDatenbank->SetDB_Password("");
     
     
    $g_oDB $oDatenbank->Connect();
     
     if ( 
    $g_oDB )
     {
        
    $g_oResult $oDatenbank->ExecuteSQLSelect($g_oDB"SELECT ID, VORNAME, NAME FROM PERSON;");
     }
     
     if ( 
    $g_oResult )
     {
        while(
    $g_oRow $g_oResult->fetch_object() )
        {
              echo 
    'Datensätze aus der Tabelle...';
           }
    }

    Don.Zwiebel

    Der frühe Vogel fängt den Wurm, aber die zweite Maus bekommt den Käse.

  • #2
    Wozu eine eigene Datenbankklasse? Verwende doch einfach mysqli oder pdo.

    Geht garantiert vielfach schneller und stabiler als was selbstgebasteltes.

    Kommentar


    • #3
      Ui, du solltest nochmals die Grundlagen studieren. Z.B. wie man Klasseneigenschaften setzt und holt.

      -> http://ch2.php.net/manual/de/language.oop5.basic.php
      Mein PHP Blog

      Kommentar


      • #4
        Naja, eigentlich soll das Ganze erstmal nur eine Spielerei zum Üben sein. Außerdem will ich schauen, wie weit ich bei PHP mit der OOP komme. Und ich habe immer gerne eigene Klassen und Funktionen die mir bestimmte DB-Zugriffe vereinfachen, ohne, dass ich an alles denken muss

        edit:

        @ModestLife: Ich versteh nicht ganz worauf du da hinaus willst ?
        Zuletzt geändert von Don.Zwiebel; 23.03.2009, 11:59.
        Don.Zwiebel

        Der frühe Vogel fängt den Wurm, aber die zweite Maus bekommt den Käse.

        Kommentar


        • #5
          Dann schau dir mal ORM an.

          Kommentar


          • #6
            1. Regeln lesen!
            1a. Welches Problem besteht?
            1b. Was macht das @ da im Quelltext?
            2. $this-> verwenden.
            3. Benennung der Variablen ist imho gewöhnungsbedürftig
            4. Wenn schon OOP, dann direkt mit Exceptions.

            Kommentar


            • #7
              Gut. Ich werde das Ganze nochmal überarbeiten...

              @TobiaZ:

              1.: Hab ich (gemein wäre, wenn ich sage vor vier Jahren *SCNR* :P)

              1.a. das eben nichts weiter passiert, hätte ich aber besser hervorheben können.

              1.b. das habe ich übersehen. Sorry

              2. ich versuche es mal.

              3. nicht wenn man weiß, was dahinter steckt

              4. Das kommt dann als nächstes
              Zuletzt geändert von Don.Zwiebel; 23.03.2009, 12:55.
              Don.Zwiebel

              Der frühe Vogel fängt den Wurm, aber die zweite Maus bekommt den Käse.

              Kommentar

              Lädt...
              X