Foros del Web » Programando para Internet » PHP »

problema con $this en un try-catch

Estas en el tema de problema con $this en un try-catch en el foro de PHP en Foros del Web. estoy mejorando la clase que utilizo para conectar a mysql, entonces le agregué un try catch y al acceder a las propiedades definidas por el ...
  #1 (permalink)  
Antiguo 14/06/2013, 08:28
Avatar de guardarmicorreo  
Fecha de Ingreso: noviembre-2012
Ubicación: Córdoba
Mensajes: 1.153
Antigüedad: 11 años, 5 meses
Puntos: 84
problema con $this en un try-catch

estoy mejorando la clase que utilizo para conectar a mysql, entonces le agregué un try catch y al acceder a las propiedades definidas por el constructor me devuelve un mensaje de error.

esta es mi clase

Código PHP:
Ver original
  1. class Conectar
  2.     {
  3.         //contiene la ip de la bd
  4.         private $IP = "127.0.0.1";
  5.        
  6.         //contiene el usuario para acceder a la bd
  7.         private $Usuario = "root";
  8.        
  9.         //contiene la contraseña para acceder a la bd
  10.         private $Passwd = "";
  11.        
  12.         //contiene la base de datos a la que hay que acceder
  13.         private $BaseDatos;
  14.        
  15.         //contiene el texto sql de la consulta
  16.         private $TextoSQL;
  17.        
  18.         public function __construct( $TextoSQL , $BaseDatos )
  19.         {
  20.             $this->TextoSQL     = $TextoSQL;
  21.             $this->BaseDatos    = $BaseDatos;
  22.         }
  23.        
  24.         public static function connect($TextoSQL)
  25.         {
  26.             try
  27.             {
  28.                                 //esta es la línea 60
  29.                 $IDConexion = new mysqli($this->IP , $this->Usuario , $this->Passwd , $this->BaseDatos );
  30.                 $IDConsulta = $IDConexion->query($TextoSQL);
  31.                 if($IDConsulta===false) throw new Exception ( "ERROR EN LA CONEXIÓN A LA BASE DE DATOS" );
  32.                 {
  33.                     return $IDConsulta;
  34.                 }
  35.             }
  36.             catch(Exception $e)
  37.             {
  38.                 echo $e->getMessage();
  39.             }
  40.         }
  41.     }

este es el error que me devuelve

Cita:
Fatal error: Using $this when not in object context in C:\xampp\htdocs\xampp\web\poo\clases.php on line 60
la línea 60 está indicada en el código de la clase

¿alguien me puede ayudar?

gracias!
  #2 (permalink)  
Antiguo 14/06/2013, 08:34
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 3 meses
Puntos: 845
Respuesta: problema con $this en un try-catch

Te sugiero que pases por la documentación http://php.net/manual/es/language.oop5.static.php

Saludos.
__________________
http://es.phptherightway.com/
thats us riders :)
  #3 (permalink)  
Antiguo 14/06/2013, 08:44
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 8 meses
Puntos: 1532
Respuesta: problema con $this en un try-catch

no puedes usar $this en una función estática, porque en dicho momento no tienes instancia de la clase, quizás lo que necesites es implementar un singleton para acceder a una única instancia del objeto de conexión
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...

Etiquetas: mysql, sql, try-catch
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 07:06.