mysqli

rethus

Erfahrenes Mitglied
Ich seh gerade den Wald vor lauter Bäumen nicht mehr. Vielleicht kann mir jemand helfen?!

Ich habe folgende DB-Klasse:
PHP:
<?php

class DbManager extends mysqli{

	var $debug 		= DBDEBUG;
	var $host 	 	= DBHOST;
	var $database 	= DB;
	var $db_user	= DBUSER;
	var $db_pass 	= DBPASS;
	var $db_port 	= DBPORT;

	var $lastQuery	= null;

	protected $connId;
	public $result;

	public function __construct(){
		$connId = parent::__construct($this->host, $this->db_user, $this->db_pass, $this->database,$this->db_port);
	}

	function query($querystring){
		if($this->debug==true) $this->_debug("SQL-Query:".$querystring);
		$result =  @parent::query($querystring);

		$this->lastQuery = $result;
		return $result;
	}
	
	public function fetchObject($obj){
		$obj = parent::fetch_object($obj);		
		return $obj;
	}

	public function __destruct(){
		if($this->connId)
		$this->close();
	}
}
?>

In einer PHP-Datei welche ich über die Konsole (CLI) aufrufe steht dann folgendes:

PHP:
#!/usr/bin/php5 -q
<?php

#TODO: Bei Pinabfrage prüfen, ob ein Teilnehmer mit dieser Pin schon eingewählt ist (zugangsschutz gegen weitergabe der Pin)

set_time_limit(20);
#error_reporting(0);

chdir("/srv/www/htdocs/contio/");  //setzen des Basisverzeichnisses

include("./includes/config.inc.php");
include_once("./includes/function_general.agi.php");

	$sql ="SELECT m.idmeeting as room,
					m.name as congregation, 
					p.name as caller,
					p.phone as caller_nr
				FROM people p
				LEFT JOIN meeting m ON (p.meeting_idmeeting=m.idmeeting)
				LEFT JOIN pin ON (pin.people_idpeople=p.idpeople)
				WHERE p.status=1
				AND m.status=1
				AND p.phone='".$caller."'
				AND m.idmeeting=$cong";

$obj = $db->query($sql);
if($data = $db->fetchObject($obj)){
         # tue dies und dass
}
?>

Rufe ich das Script nun auf, erhalte ich in den Logs die Meldung:
PHP Fatal error: Call to undefined method mysqli::fetch_object() in /srv/www/htdocs/contio/classes/DbManager.class.php on line 32

Und das ist genau die Zeile mit diesem Code:
PHP:
		$obj = parent::fetch_object($obj);

Kann mir jemand einen Tipp geben, warum er da fetch_object nicht mehr kennt?
 
Da es keine Methode mysqli::fetch_* sondern lediglich mysqli_result::fetch_* gibt, solltest du in der Methode fetchObject vielleicht eher so notieren:

PHP:
    public function fetchObject($obj){
        assert($obj instanceof MySQLi_Result);
        $o = $obj->fetch_object();    
        return $o;
    }
 
Zurück