Klasse in Klasse starten?

P

Palla

Hallo @ all,

ich habe ein problem und zwar will ich eine Klasse schreiben die verschiedene aufgaben und berechnungen erfüllen soll - mir ist klar wie diese Berechnungen durchführen will, allerdings möchte ich meiner klasse eine Mysql Datenbank als Basis für die Infos bereitstellen.

dh. siehst das ganze (Vereinfacht) so aus:
------------------------------------------------------------------------------------------------
Code:
class DataBase {
    
    function fetch($query){
        //Query database and return data
    }
} 

	class Test {
			private $db;
						
		function _construct($server, $name, $user, $pass){
			$this->db = new DataBase($server, $name, $user, $pass);
		}
        
        function getData($query){
		      $result = $this->db->fetch("SELECT * FROM 'tabelle' WHERE $query");
		      return $result;
		}
}


$test = new Test($server, $name, $user, $pass);
$test->getData("UserID = 1");
------------------------------------------------------------------------------------------------

Ergebniss ist ein Fatal error: Call to a member function fetch() on a non-object in (...)

Jemand ne idee wie das sonnst gehen soll, oder muss ich das ganze anders machen?
 
Ich würde es per Parameter machen.

PHP:
class DataBase {
    
    function fetch($query){
        //Query database and return data
    }
} 

	class Test {
			private $db;
						
		function __construct($server, $name, $user, $pass, DataBase $db){
			$this->db = new DataBase($server, $name, $user, $pass);
		}
        
        function getData($query){
		      $result = $this->db->fetch("SELECT * FROM 'tabelle' WHERE $query");
		      return $result;
		}
}

$db = new DataBase();
$test = new Test($server, $name, $user, $pass, $db);
$test->getData("UserID = 1");
 
Zuletzt bearbeitet:
Zurück