Problem OOP

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • #16
    Ja hab das selber geschrieben alles! Die Fehlerbehandlung sonstiges war auch kein großes Problem, nur hier sehe ich zurzeit kein Land so richtig, bis jetzt.
    Logisch $user und $pass, oder bin ich jetzt total aufm falschen Weg?
    Irgendwie stelle ich mich gerade voll dumm an......*selbsteinschätzung*
    Danke für die geduld!

    Comment


    • #17
      Also[list=1][*]Du musst bei extend keine neue Klasse zusätzlich erstenllen[*]Musst du den Konstruktor auch aufrufen wenn du extend benutzt und den ursprüngilchen Konstruktor überschreibst[/list=1] - praktisch sieht das so aus:
      PHP Code:
       <?php  

      class mysql{
         ...
      }    

      class 
      counter extends mysql
      {
          function 
      test ( )
          {
              
      parent::query(...);
          }
      }

      $counter = new counter '[i]SQL Username[/i]''[i]SQL Passwort[/i]' );
      // counter erbt den Konstruktor von mysql.
      // Diese Klasse erwartet zwei Argumente

      $conter -> test ( ); // Query wird ausgeführt
      ?>
      Die Regeln | rtfm | register_globals | strings | SQL-Injections | [COLOR=silver][[/COLOR][COLOR=royalblue]–[/COLOR][COLOR=silver]][/COLOR]

      Comment


      • #18
        ok hab ich gemacht! nur jetzt kommt ne neue Fehlermeldung:
        "Debug-Fehler: D:\Programme\xampp\htdocs\test.php Zeile 30 - Call to a member function query() on a non-object"

        Die Code der Zeile ist:
        PHP Code:
        return $this->dbh->query($sql); 

        Comment


        • #19
          und jetzt?

          mal ins manual gucken:
          http://de3.php.net/manual/en/language.oop5.decon.php

          was steht dort über den aufruf der parent-konstruktoren?

          Comment


          • #20
            Das man die mit parent::__construct() aufruft oder sehe ich das falsch?

            Comment


            • #21
              genau. und da kannst du deine parameter übergeben.

              Comment


              • #22
                Ok also:
                PHP Code:
                parent::__construct("root",""
                Nur was hat das mit der Fehlerzeile zu tun?
                Denn hab das eingebaut und trotzdem kommt der Fehler noch!
                PHP Code:
                class counter extends mysql
                {
                    function 
                test()
                    {
                        
                parent::__construct("root","");
                        
                        
                parent::query("INSERT INTO test(abc) VALUES ('irgfgrgrt5')");
                    }

                Last edited by BlackPerfect; 18-04-2007, 17:16.

                Comment


                • #23
                  da kommen am besten keine konstanten hin, sondern tatsächlich _parameter_.

                  Nur was hat das mit der Fehlerzeile zu tun?
                  was besagt sie denn?

                  edit: du sollst den konstruktor für counter schreiben, der den von mysql aufruft.

                  und dann zeig noch mal, wie du was aufrufst.
                  Last edited by penizillin; 18-04-2007, 17:19.

                  Comment


                  • #24
                    Ei, ei, ei. So viele erklärungen für ein simples problem.
                    Wenn der OP mal etwas mehr zum thema gelesen hätte
                    dann hätte er hier auch nicht fragen brauchen.
                    Mir ist auch schleierhaft warum hier nicht durchgängig
                    php5-konstrukte benutzt werden oder eben durchgängig php4.
                    Aber für eins solltest du dich bitte entscheiden.

                    Also @BP ruf den parent-ctor richtig auf und überleg dir mal
                    ob es gut ist im exceptionfall die exception nicht weiter zuwerfen.

                    Ich drücke die daumen, du schaffst das schon. Ansonsten fragst
                    du hier eben noch zehn mal bis einer genervt den kompletten code
                    posted. Das funktioniert doch immer

                    greets
                    (((call/cc call/cc) (lambda (x) x)) "Scheme just rocks! and Ruby is magic!")

                    Comment


                    • #25
                      Schön das ihr den Humor noch nicht verloren habt. Irgendwie stehe ich heute auf Kriegsfuss mit PHP weiß auch nicht. Also das nochmal versucht, aber wie ihr euch schon denken könnt ging es mal wieder schief!

                      Hier der code:

                      PHP Code:
                      public function __construct($user$pass) {
                       
                       
                      parent::mysql($user$pass);
                       
                      parent::query("INSERT INTO test(abc) VALUES ('irgfgrgrt5')");
                       } 
                      Ach mano.....

                      Comment


                      • #26
                        und jetzt?

                        Comment


                        • #27
                          was mache ich denn nur falsch?.......*noch verzweifel*........

                          Comment


                          • #28
                            du rätst.
                            du zeigst nicht, was du machst.
                            du erklärst nicht, was dir nicht gelingt.

                            PHP Code:
                            <?php  

                            class mysql{

                                var 
                            $dbh;

                                function 
                            mysql($user,$pass)
                                {
                                    
                            $this->dbh 'irgendwas';
                                }    

                                function 
                            query()
                                {
                                    return 
                            'der wert ist: '.$this->dbh;
                                }

                            }  

                            class 
                            counter extends mysql
                            {
                                function 
                            counter($a$b){
                                    
                            parent::__construct($a,$b);
                                }
                                
                                function 
                            test()
                                {
                                    echo 
                            $this->query();
                                }
                            }

                            $counter = new counter("a""b");

                            $counter->test();

                            ?>

                            Comment


                            • #29
                              Hehe,

                              sieht aus als wär penizillin heut mal der "genervte" der
                              den (zumindest halbfertigen) code serviert.

                              greets
                              (((call/cc call/cc) (lambda (x) x)) "Scheme just rocks! and Ruby is magic!")

                              Comment

                              Working...
                              X