Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

Clase no selecciona la base.

Estas en el tema de Clase no selecciona la base. en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Estimados hice esta clase y no logro que seleccione la base de datos, por lo que dice el mensaje en la funcion que conecta: @import ...
  #1 (permalink)  
Antiguo 24/08/2012, 08:39
 
Fecha de Ingreso: noviembre-2009
Mensajes: 381
Antigüedad: 14 años, 5 meses
Puntos: 6
Clase no selecciona la base.

Estimados hice esta clase y no logro que seleccione la base de datos, por lo que dice el mensaje en la funcion que conecta:

Código PHP:
Ver original
  1. <?php
  2. class Security{
  3.  
  4.     private $db_host;
  5.     private $db_name;
  6.     private $db_user;
  7.     private $db_password;
  8.     private $connection;
  9.    
  10.     public $ADMIN = false;
  11.     public $PRODUCTOS_AGREGAR = false;
  12.     public $PRODUCTOS_MODIFICAR = false;
  13.     public $CLIENTES_AGREGAR = false;
  14.     public $CLIENTES_MODIFICAR = false;
  15.     public $CONTENIDOS_ADMIN = false;
  16.    
  17.     function Security()
  18.     {
  19.         include_once("includes/inc.config.php");
  20.        
  21.         $this->db_host = $dbhost;
  22.         $this->db_name = $dbname;
  23.         $this->db_user = $dbuser;
  24.         $this->db_password = $dbpassword;
  25.     }  
  26.  
  27.     public function load_from_user($userID)
  28.     {
  29.         $result = false;
  30.         $this->connect();
  31.  
  32.         $query = "SELECT a.perfil_id, b.perfil FROM tabla a INNER JOIN ids_perfiles b ON (a.perfil_id = b.id) WHERE user_id = '".$userID."' ";
  33.         echo $query;
  34.         if(!$userID == 0)
  35.         {
  36.             $res = mysql_query($query, $this->connection);
  37.             while($row = mysql_fetch_array($res, MYSQL_ASSOC))
  38.             {
  39.                 $this->{$row->perfil} = true;
  40.             }
  41.         }
  42.         return $result;
  43.        
  44.         $this->disconnect();
  45.     }
  46.  
  47.     function connect()
  48.     {
  49.         $this->connection = mysql_connect($this->db_host, $this->db_user, $this->db_password) or die("Unable to connect to MySQL");
  50.         mysql_select_db($this->db_name, $this->connection) or die("Unable to select DB!");
  51.        
  52.         if($this->connection)
  53.         {
  54.             return true;
  55.         }
  56.         else return false;
  57.     }
  58.  
  59.     function disconnect()
  60.     {
  61.         mysql_close($this->connection);
  62.     }  
  63.    
  64. }
  65. ?>

El include tiene solamente las variables con los datos de la DB.
El mensaje que sale en pantalla es Unable to select DB!

Ok, muchas gracias!
Gustav.
  #2 (permalink)  
Antiguo 24/08/2012, 08:45
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Clase no selecciona la base.

Pues prueba ver que tiene $this->db_name e imprime el valor de mysql_error();.

Por otro lado revisa este tema:

http://www.forosdelweb.com/f18/anunc...ecada-1008145/
  #3 (permalink)  
Antiguo 24/08/2012, 09:10
 
Fecha de Ingreso: noviembre-2009
Mensajes: 381
Antigüedad: 14 años, 5 meses
Puntos: 6
Respuesta: Clase no selecciona la base.

El valor de mysql_error es No database selected

No logro debugear la variable, uso los tags <pre> pero no muestra nada, aqui debo estar haciendo algo mal yo.

Muchas gracias!
Gustav.
  #4 (permalink)  
Antiguo 24/08/2012, 09:52
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Clase no selecciona la base.

Simplemente haz un var_dump($this->dbname); antes de hacer la conexión y revisa que valor tiene.

Saludos.
  #5 (permalink)  
Antiguo 24/08/2012, 09:59
 
Fecha de Ingreso: noviembre-2009
Mensajes: 381
Antigüedad: 14 años, 5 meses
Puntos: 6
Respuesta: Clase no selecciona la base.

Ups... NULL
  #6 (permalink)  
Antiguo 24/08/2012, 10:06
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Clase no selecciona la base.

Es por eso que te manda el error...
  #7 (permalink)  
Antiguo 24/08/2012, 10:21
 
Fecha de Ingreso: noviembre-2009
Mensajes: 381
Antigüedad: 14 años, 5 meses
Puntos: 6
Respuesta: Clase no selecciona la base.

Si, es muy extraño porque estoy usando la misma forma de conectar en otra clase y funciona bien.

Bue, a buscar...

Muchas gracias!
Gustav.

Etiquetas: clase, mysql, variables
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 02:55.