Ver Mensaje Individual
  #9 (permalink)  
Antiguo 13/09/2013, 14:24
Erick_MD9
 
Fecha de Ingreso: julio-2013
Ubicación: México
Mensajes: 361
Antigüedad: 10 años, 9 meses
Puntos: 55
Respuesta: no guarda datos en la base de datos

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 original
  1. class dbConeccion {
  2.  
  3.     private static $servidor = 'localhost';
  4.     private static $usuario = '';
  5.     private static $password = '';
  6.     private static $database='';
  7.     private static $instance;
  8.    
  9.     private function __construct() {}
  10.    
  11.     public static function getInstance(){  
  12.         if (!isset(self::$instance)){
  13.             $mysqli = new mysqli(self::$servidor, self::$usuario, self::$password, self::$database);
  14.                 if (mysqli_connect_errno()) {
  15.                     printf("Falló la conexión: %s\n", mysqli_connect_error());
  16.                     exit();
  17.                 }
  18.                 if (!$mysqli->set_charset("utf8")) {
  19.                     printf("Error cargando el conjunto de caracteres utf8: %s\n", $mysqli->error);
  20.                     exit();
  21.                 }
  22.                 self::$instance= $mysqli;
  23.         }
  24.         return self::$instance;  
  25.     }
  26.    
  27.     public function __clone() {  
  28.         printf("NO SE PERMITE DUPLICAR ESTO");
  29.         exit();
  30.     }
  31.  
  32. }

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 original
  1. class xxxxxxxxxxxxxx{
  2.  
  3. private $mysqli;
  4.  
  5.     function __construct(){
  6.         $this->mysqli=DB_CONECTION::getInstance();
  7.     }
  8.  
  9.     function hacerAlgo(){
  10.         $mysqli=$this->mysqli;
  11.         $mysqli->query("INSERT INTO usuario(apodo,contrase) VALUES ('aaaa','bbbbbb')");
  12.     }
  13.  
  14. }

Espero te sirva. Saludos