Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] error en php con clase pdo

Estas en el tema de error en php con clase pdo en el foro de PHP en Foros del Web. Hola amigos, pués resulta que estoy desarrollando una web y lo primero que hago es elaborar una clase para conexión pero algo no debo entender ...
  #1 (permalink)  
Antiguo 21/08/2019, 07:31
 
Fecha de Ingreso: agosto-2008
Mensajes: 605
Antigüedad: 11 años, 1 mes
Puntos: 11
error en php con clase pdo

Hola amigos, pués resulta que estoy desarrollando una web y lo primero que hago es elaborar una clase para conexión pero algo no debo entender bién que me da el error:
Código PHP:
Ver original
  1. error: Call to a member function query() on null

Os dejo el código haber si alguno ve el fallo.

Código PHP:

//Esta es la clase conectar
class Conectar  {


    public static function 
conexion () {

       
        try{
            
$base = new PDO ('mysql:host=localhost; dbname=perfume''root''');
            
//defino los atributos 
            
$base->setAttribute(PDO::ATTR_ERRMODEPDO::ERRMODE_EXCEPTION);
           
//incluyo caracteres
            
$base->exec("SET CHARACTER SET utf8");
            
               
    
        } catch(
Exception $e){
    
            die(
"error yo".$e->getMessage());
        
    
       
        }
    }
}
// y aquí creo mi objeto y trato de hacer una consulta a la base de datos para que me //la muestre
   
$sql="select * from genero ";
            
$bd=Conectar::conexion();
            
$resultados=$bd->query($sql);
            
$filas =  array();
          


            while(
$registros=$resultados->fetch(PDO::FETCH_ASSOC)){


                
$matriz[]=$registros;
            }


            foreach(
$matriz as $filas){

              echo   
$filas['idgenero'].$filas['genero'];
            } 
  #2 (permalink)  
Antiguo 21/08/2019, 07:57
Avatar de vb2005  
Fecha de Ingreso: noviembre-2005
Ubicación: Paderborn - Alemania
Mensajes: 548
Antigüedad: 13 años, 10 meses
Puntos: 23
Respuesta: error en php con clase pdo

Cita:
Iniciado por trevol Ver Mensaje
Hola amigos, pués resulta que estoy desarrollando una web y lo primero que hago es elaborar una clase para conexión pero algo no debo entender bién que me da el error:
Código PHP:
Ver original
  1. error: Call to a member function query() on null

Os dejo el código haber si alguno ve el fallo.

Código PHP:

//Esta es la clase conectar
class Conectar  {


    public static function 
conexion () {

       
        try{
            
$base = new PDO ('mysql:host=localhost; dbname=perfume''root''');
            
//defino los atributos 
            
$base->setAttribute(PDO::ATTR_ERRMODEPDO::ERRMODE_EXCEPTION);
           
//incluyo caracteres
            
$base->exec("SET CHARACTER SET utf8");
            
               
    
        } catch(
Exception $e){
    
            die(
"error yo".$e->getMessage());
        
    
       
        }
    }
}
// y aquí creo mi objeto y trato de hacer una consulta a la base de datos para que me //la muestre
   
$sql="select * from genero ";
            
$bd=Conectar::conexion();
            
$resultados=$bd->query($sql);
            
$filas =  array();
          


            while(
$registros=$resultados->fetch(PDO::FETCH_ASSOC)){


                
$matriz[]=$registros;
            }


            foreach(
$matriz as $filas){

              echo   
$filas['idgenero'].$filas['genero'];
            } 

Te falta retornar el objeto PDO que creaste:

Código PHP:

//Esta es la clase conectar
class Conectar  {


    public static function 
conexion () {

       
        try{
            
$base = new PDO ('mysql:host=localhost; dbname=perfume''root''');
            
//defino los atributos 
            
$base->setAttribute(PDO::ATTR_ERRMODEPDO::ERRMODE_EXCEPTION);
           
//incluyo caracteres
            
$base->exec("SET CHARACTER SET utf8");
            
               
            return 
$base;
        } catch(
Exception $e){
    
            die(
"error yo".$e->getMessage());
        
    
       
        }
    }
}
// y aquí creo mi objeto y trato de hacer una consulta a la base de datos para que me //la muestre
   
$sql="select * from genero ";
            
$bd=Conectar::conexion();
            
$resultados=$bd->query($sql);
            
$filas =  array();
          


            while(
$registros=$resultados->fetch(PDO::FETCH_ASSOC)){


                
$matriz[]=$registros;
            }


            foreach(
$matriz as $filas){

              echo   
$filas['idgenero'].$filas['genero'];
            } 
__________________
www.marcher.com.uy - Web personal
Nerd's Corner - Desarrollo de software a medida
  #3 (permalink)  
Antiguo 21/08/2019, 08:47
 
Fecha de Ingreso: agosto-2008
Mensajes: 605
Antigüedad: 11 años, 1 mes
Puntos: 11
Respuesta: error en php con clase pdo

Gracias vb2005, ahora funciona bién. Me estaba volviendo loco.



La zona horaria es GMT -6. Ahora son las 04:09.