Probleme mit mysqli bei OOP

Divo1984

Erfahrenes Mitglied
Ich fasse mich kurz, ich habe folgende Klasse:

PHP:
<?php
class DB extends mysqli
{
	public $host;	
	public $database;
	public $user;
	public $pw;
	
	private $db;
	
	public function conn()
	{
		$this->host="localhost";
		$this->database="masked";
		$this->user="masked";
		$this->pw="masked";
				
		$db = new mysqli($this->host, $this->user, $this->pw, $this->database);	
		
		if ($db->connect_error) 
		{
			 	printf(
			    "Can't connect to MySQL Server. Errorcode: %s\n",
			    mysqli_connect_error());		
		  exit;
		}

	 }
}
?>

und folgendes Script:

PHP:
<?php
require_once 'classes/class_DB.php';
$time_start = microtime(true);

$db=new DB();
$a=$db->conn();
$erg=$a->query("SELECT * FROM empfaenger");
$zeilenzahl = $erg->num_rows;

echo "<p>Insgesamt $zeilenzahl Datensätze gefunden</p>\n";

while($zeile=$erg->fetch_array())
{
	echo"ID: ".$zeile['id']."&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;".$zeile['username']."<br>";
}


$time_end = microtime(true);
$time = $time_end - $time_start;
$time = @round($time*1000)/1000;
    
echo"geladen in: ".$time;


?>

bekomme folgenden Fehler:

Fatal error: Call to a member function query() on a non-object in ../meinpfad\index.php on line 7

wo liegt mein Denkfehler?
 
Deine Funktion conn hat keinen Rückgabe wert (ergo müsste $a NULL sein und hat erst recht keine Methoden). Du musst eine Referenz auf dein Objekt zurückgeben.
PHP:
 public function conn() 
    { 
        $this->host="localhost"; 
        $this->database="masked"; 
        $this->user="masked"; 
        $this->pw="masked"; 
                 
        $db = new mysqli($this->host, $this->user, $this->pw, $this->database);     
         
        if ($db->connect_error)  
        { 
                 printf( 
                "Can't connect to MySQL Server. Errorcode: %s\n", 
                mysqli_connect_error());         
          exit; 
        } 
       return $this;
     }
 
Zurück