Ver Mensaje Individual
  #2 (permalink)  
Antiguo 06/08/2007, 09:11
Avatar de GatorV
GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 8 meses
Puntos: 2135
Re: iniciando con php oop, problema con seleccionar base de datos

Tienes tres grandes errores, el primero, es estas llamando a conecta pero sin embargo en tu clase consulta lo heredas, asi que no es necesario llamar a conecta si ya lo estas heredando.

Segundo, si ves la funcion mysql_select_db te devuelve un booleano si seleccion o no la base de datos. No creo que debas de almacenar este resultado en una variable.

Tercero, la funcion mysql_query espera como segundo parametro un recurso con el enlace a la conexion a la base de datos para poder descargar el resultado, tu le estas pasando null (ya que nunca conectaste desde tu clase).

Te dejo la clase corregida:
Código PHP:
class Connectar{
    var 
$usuario;
    var 
$pass;
    var 
$host;
    var 
$error;
    var 
$basedatos;
    var 
$enlace;
    var 
$db_select;
    
    function 
__construct($host,$usuario,$pass,$basedatos){
        
$this->host=$host;
        
$this->usuario=$usuario;
        
$this->pass=$pass;
        
$this->basedatos=$basedatos;
    }
    
    
/*function err(){
        echo $this->error = mysql_error();
    }*/
    
    
function conecta(){
        
$this->enlace=mysql_connect($this->host,$this->usuario,$this->pass) or die(mysql_error());
         
mysql_select_db($basedatos,$this->enlace)or die(mysql_error());            
    }
}
/*
$obj = new Connectar("localhost","root","","oop_db");
$obj->conecta();
*/
/* clase para consultar datos */

class Consulta extends Connectar{
    var 
$consulta;
    var 
$resultado;
    var 
$query;
    var 
$tabla;
    var 
$row;
    
    function 
__construct($host,$usuario,$pass,$basedatos){
         
parent::__construct($host,$usuario,$pass,$basedatos);
         
$this->conecta();
    }
    function 
datos($query){
        
$this->consulta=mysql_query($query,$this->enlace)or die("Error en consulta ".mysql_error());
    }
}
$obj2 = new Consulta("localhost","root","","oop_db");
$obj2->datos("SELECT * FROM tbl_usuarios"); 
Saludos.