"class test extends db" funktioniert nicht

Benutzt du PHP4 oder PHP5?

PHP:
class test extends db {
     function test()
     {
       parent::db('HIER ALLE PARAMETER');
     }

     function hallo() {
     return $this->select("Select * from test");
     }
}

Deine db Klasse erwartet, dass du die Verbindung herstellst. Das tust du aber beim Aufruf von test nicht. test ist eine eigenständige Klasse, nachdem du sie instanzierst und hat die Methoden der Elternklasse db. ALLERDINGS hat sie keine Verbindung zu deiner Datenbankklasse , die du mit $db = new db(); instanzierst.
 
Ich benutze PHP4.
Heiß dass also, dass ich auch allen Klassen, die die DB Klasse verwenden sämtliche SQL Zugangsdaten übergeben muss, oder?

Was mir jedoch ein bisschen spanisch vorkommt, ist folgendes:
Ich bekomme ein Datenbank nicht gefunden, wenn ich in der test Klasse keinen Konstruktor angebe.
Wenn ich jedoch einen Konstruktor angebe, auch wenn der gar nichts macht (a lá function test () { } ), dann funktioniert die Datenbankklasse ohne Probleme.
An was könnte denn das liegen?

Danke,
sc.
 
Auch nach etlichen :google: Versuchen bin ich leider immer noch nicht fündig geworden.
Verzweifle bald an der Sache...

Vielleicht kennt ja jemand noch ne Lösung, ansonsten muss ich's irgendwie ander's machen (bloß wie...)

Danke,
sc.
 
Alsoo ,)

Du kannst eine Klasse mit extends ableiten meinetwegen

PHP:
class MySQL_db extends db {
    static $link;
    function __construct(){
     $this->db('localhost',
                'database1',
                'root',
                'pass');
    }
}

Dort trägst du deine Zugangsdaten ein. In allen Klassen fügst du in die Konstruktoren

PHP:
$this->db = new MySQL_db();

Soweit ist das Konstrukt dann ja schonmal recht gut zu verwenden. Durch die Statische Variable bleibt der Link auch beim neu genereieren von anderen Klassen erhalten, und in der db() funktion von der Klasse db() würd ich überprüfen ob schon eine Verbindung besteht.
 
Zurück