Ver Mensaje Individual
  #1 (permalink)  
Antiguo 13/02/2013, 16:52
cslbcn
 
Fecha de Ingreso: marzo-2008
Mensajes: 383
Antigüedad: 16 años, 1 mes
Puntos: 5
Exclamación Error con método estatico...

Hola. Tengo un problema con la siguiente clase... La cuestión es que cuando la instancio, me sale este error:

Código PHP:
Ver original
  1. Fatal error: Cannot make non static method mysqli::connect() static in class DataBase

He probado varias cosas y no consigo solucionarlo. La forma de llamar a la clase es:
Código PHP:
Ver original
  1. $db = DataBase::connect();

El código es el siguiente (acortado):

Código PHP:
Ver original
  1. class DataBase extends MySQLi{
  2.    
  3.     private $lastError;
  4.     private $resultSize;
  5.     private $link;
  6.     private $sql;
  7.         private $result;  
  8.        
  9.         private static $connection;
  10.         private static $sqlQueries;
  11.     private static $totalQueries;
  12.            
  13.     const dbDatabase = 'database';
  14.     const dbUsername = 'root';
  15.     const dbPassword = '';
  16.     const dbServer   = 'localhost';
  17.    
  18.    
  19.     public static function connect(){
  20.         if (is_null(self::$connection)) {
  21.             self::$connection = new DataBase();
  22.         }
  23.         return self::$connection;
  24.     }
  25.  
  26.        
  27.     private function __construct(){
  28.         $this->link = parent::__construct(self::dbServer, self::dbUsername, self::dbPassword, self::dbDatabase);
  29.         if($this->connect_errno == 0){
  30.             self::$totalQueries = 0;
  31.             self::$sqlQueries = array();
  32.         }
  33.         else {
  34.             echo 'Error en la conexion: '.$this->connect_error;
  35.         }
  36.     }
  37.        
  38.        
  39.     function __destruct(){
  40.         $this->close();
  41.     }
  42.  
  43.     //*************** más metodos...
  44.        
  45. }

Alguna idea?
Gracias.