Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] PHP OO Error con método estatico...

Estas en el tema de Error con método estatico... en el foro de PHP en Foros del Web. Hola. Tengo un problema con la siguiente clase... La cuestión es que cuando la instancio, me sale este error: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código PHP: Ver original ...
  #1 (permalink)  
Antiguo 13/02/2013, 16:52
 
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.
  #2 (permalink)  
Antiguo 13/02/2013, 17:00
Avatar de dashtrash
Colaborador
 
Fecha de Ingreso: abril-2007
Ubicación: Ni en Sevilla,ni en Sanlúcar..qué más da..
Mensajes: 927
Antigüedad: 17 años
Puntos: 270
Respuesta: Error con método estatico...

El mensaje está claro: no puedes hacer que un método no estático de una clase Base, sea sobreescrito por un método estático en una clase derivada.
  #3 (permalink)  
Antiguo 13/02/2013, 17:05
 
Fecha de Ingreso: marzo-2008
Mensajes: 383
Antigüedad: 16 años, 1 mes
Puntos: 5
Respuesta: Error con método estatico...

No sé si será por tu sutil traducción o que se me ha encendido la bombilla, pero es tan simple como cambiar el nombre de mi método estatico, por ejemplo a "conectar"....

Gracias!

Etiquetas: mysql, sql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:25.