Foros del Web » Programando para Internet » PHP »

Problemas al llamar a una clase

Estas en el tema de Problemas al llamar a una clase en el foro de PHP en Foros del Web. Hola Amigos!! mi problema es el siguiente necesito tener en una clase los parametros de conexion para llamar a las variables desde otras paginas pero ...
  #1 (permalink)  
Antiguo 01/07/2012, 15:22
 
Fecha de Ingreso: octubre-2010
Ubicación: Buenos Aires
Mensajes: 557
Antigüedad: 13 años, 6 meses
Puntos: 4
Problemas al llamar a una clase

Hola Amigos!!
mi problema es el siguiente
necesito tener en una clase los parametros de conexion para llamar a las variables desde otras paginas pero no logro hacerlo
lo estoy haciendo asi
Código PHP:
Ver original
  1. class vara{
  2.         private $dbservidor = "localhost";
  3.         private $dbusuario = "root";
  4.         private $dbclave = "";
  5.         private $db = "prueba";
  6.        
  7.             public function vari(){
  8.                 $this->dbservidor = $dbservidor;
  9.                 $this->dbusuario = $dbusuario;
  10.                 $this->dbclave = $dbclave;
  11.                 $this->db = $db;
  12.             }
  13. }
  14.        
  15. class Conectar{
  16.    
  17.     public static function con(){
  18.         $k=new vara;
  19.         $k->vari();
  20.        
  21. @       $conexion=mysql_connect("$dbservidor","$dbusuario","$dbclave");
  22.         mysql_query("SET NAMES 'utf8'");
  23.         mysql_select_db("$db",$conexion);
  24.         return $conexion;
  25.         mysql_free_result($conexion);
  26.        
  27.         }
  28.  
  29.     }
muchas gracias por cualquier ayuda que puedan brindarme
saludos!!!
  #2 (permalink)  
Antiguo 01/07/2012, 15:49
Avatar de ipraetoriux  
Fecha de Ingreso: abril-2010
Ubicación: ipraetoriux.com
Mensajes: 1.125
Antigüedad: 14 años
Puntos: 155
Respuesta: Problemas al llamar a una clase

bien el problema lo tienes en la clase conectar...

1ero, el metodo con(), porque lo pones static?...
2do. Cuando estableces la conexion con mysql, los parametros $dbservidor, $dbusuario, $dbclave, los has definido en la clase vara, por lo tanto no existen dentro de la clase Conectar, para aqueder a ellos lo haces con instanciando la clase vara, peroooo...en vara deben ser public, no private. Dentro de vara el metodo vari lo sustituyes con el contructor, acostumbra a empezar las classes son mayuscula y aunque no es condicion necesaria en php escribe una clase por archivo, como en Java por ejemplo.

entonces vara te quedaria asi...

Código PHP:
Ver original
  1. class Vara(){
  2.         public $dbservidor = "localhost";
  3.         public $dbusuario = "root";
  4.         public $dbclave = "";
  5.         public $db = "prueba";
  6.  
  7.         public function __construct(){
  8.               $this->dbservidor = $dbservidor;
  9.                 $this->dbusuario = $dbusuario;
  10.                 $this->dbclave = $dbclave;
  11.                 $this->db = $db;
  12.        }
  13. }


En Conectar tambien sacas el metodo con y lo reemplas directame con el contructor, esto te ahorra codigo al momento de establecer la conexion

Código PHP:
Ver original
  1. class Conectar{
  2.    
  3.      private $conectar;
  4.  
  5.      public function __construct(){
  6.         $this->conectar = new Vara();
  7.                
  8.        $conexion=mysql_connect($this->conectar->dbservidor,$this->conectar->dbusuario,$this->conectar->dbclave);
  9.         mysql_query("SET NAMES 'utf8'");
  10.         mysql_select_db("$db",$conexion);
  11.         return $conexion;
  12.         mysql_free_result($conexion);
  13.        
  14.         }
  15.  
  16.     }


Luego en conectar, haces un mysql_query antes de seleccionar la base de datos...primero tienes que seleccionar la base de datos con la trabajaras, y luego haces las consultas con mysql_query, por lo tanto la clase Conectar no funcionara, tienes mal el orden de acciones a seguir
  #3 (permalink)  
Antiguo 01/07/2012, 15:57
 
Fecha de Ingreso: octubre-2010
Ubicación: Buenos Aires
Mensajes: 557
Antigüedad: 13 años, 6 meses
Puntos: 4
Respuesta: Problemas al llamar a una clase

Perfecto ahora entendi!!!
Muchas gracias!!!

Etiquetas: clase, mysql, sql, variables, usuarios
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 13:45.