Hola.
El error de undefined method es por que no esta llegando tu objeto mysqli correctamente.
Inentas hacer un singleton, te dejo aqui una clase y su uso básico.
Código PHP:
Ver originalclass dbConeccion {
private static $servidor = 'localhost';
private static $usuario = '';
private static $password = '';
private static $database='';
private static $instance;
private function __construct() {}
public static function getInstance(){
if (!isset(self::$instance)){ $mysqli = new mysqli(self::$servidor, self::$usuario, self::$password, self::$database);
}
if (!$mysqli->set_charset("utf8")) {
printf("Error cargando el conjunto de caracteres utf8: %s\n", $mysqli->error); }
self::$instance= $mysqli;
}
return self::$instance;
}
public function __clone() {
printf("NO SE PERMITE DUPLICAR ESTO"); }
}
DONDE QUIERAS USAR LA CONECCION EXISTENTE USAS
$MYSQLI=dbConeccion::getInstance();
YO PREFIERO USARLA EN EL COSTRUCTOR DE LAS CLASE Y COLOCARLA COMO UNA PROPIEDAD, LOS METODOS QUE LA OCUPEN LLAMO A LA PROPIEDAD DEL OBJETO.
EJEMPLO:
Código PHP:
Ver originalclass xxxxxxxxxxxxxx{
private $mysqli;
function __construct(){
$this->mysqli=DB_CONECTION::getInstance();
}
function hacerAlgo(){
$mysqli=$this->mysqli;
$mysqli->query("INSERT INTO usuario(apodo,contrase) VALUES ('aaaa','bbbbbb')");
}
}
Espero te sirva. Saludos