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

Problema con PDO

Estas en el tema de Problema con PDO en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Estimados amigos; estoy queriendo hacer la clásica validacion de usuario pero con PDO, es decir yo le mando de un formulario usuario y contraseña chequea ...
  #1 (permalink)  
Antiguo 01/04/2008, 11:09
 
Fecha de Ingreso: diciembre-2007
Mensajes: 178
Antigüedad: 16 años, 4 meses
Puntos: 1
Problema con PDO

Estimados amigos;
estoy queriendo hacer la clásica validacion de usuario pero con PDO, es decir yo le mando de un formulario usuario y contraseña chequea la base y si encuentra 1 resultado crearia una sesion (pero eso no es lo importante)
El echo que he creado esta clase y me arroja el siguiente error:

Warning: PDO::exec() expects parameter 1 to be string, array given in C:\Archivos de programa\EasyPHP 2.0b1\www\foro\ver\creases.php on line 19


Código PHP:
class crearsesion{
    public  
$usuario;
    public  
$password;
    
    
    function 
__construct($usuario$password){
        
$this->usuario=$usuario;
        
$this->password=$password;
    }
    
    function 
consultartabla(){
        
$consulta=Conexion::singleton();
        
$consulta->prepare("SELECT * FROM usuariosforo WHERE usuario = ? AND pass = ?");
    
        
    
$cantidad=$consulta->exec(array($this->usuario,$this->password));

    
    if(
$cantidad==1){
        echo 
"aqui se crearía la sesion";
            }
            else{
                echo 
"no existe el usuario o ha ocurrido un error.";
            }
    }
    

Las variables $usuario y $password llegan bien y son strings, el singleton funciona bien.

Si alguien ve el o los error/es, se lo agradecería.
Saludos.
  #2 (permalink)  
Antiguo 01/04/2008, 11:58
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Re: Problema con PDO

Cuando tu usas $obj->prepare en PDO, este te regresa un PDOStatementObject, el cual tiene un método execute en el que si le debes de pasar un arreglo de parámetros, ya que PDO::Exec necesita un string, o sea la consulta:
Código PHP:
$consulta Conexion::singleton();
$stmt $consulta->prepare("SELECT * FROM usuariosforo WHERE usuario = ? AND pass = ?");
$result $stmt->execute(array($this->usuario,$this->password)); 
$cantidad $result->rowCount(); 
Saludos.
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 15:26.