PHP - Consulta en PHP con PDO y Mysql

 
Vista:
sin imagen de perfil

Consulta en PHP con PDO y Mysql

Publicado por Gonzalo (2 intervenciones) el 01/04/2014 20:54:09
Hola a todos.

Estoy haciendo una programa utilizando XAMPP (PHP5.5, Mysql) y utilizo PDO para acceder a la BD.
El problema que tengo es que estoy haciendo una consulta así:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
function check_user_PDO($nombre)
{
	try
	{
		$db = Conexion_PDO();
		$find = $db->prepare("SELECT * FROM login WHERE usuario = :nombre");
		$find -> execute(array(":nombre" => $nombre));
		$count = $find -> rowCount();
		print ("Rows found: ". $count);
	}
	catch(PDOException $e)
	{
		echo $e->getMessage();
	}
}

El problema es que hago pruebas con registros que existen y el query me arroja 0 columnas afectadas.
Que estoy haciendo mal?

Saludos.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve
Val: 3.943
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Consulta en PHP con PDO y Mysql

Publicado por xve (6935 intervenciones) el 02/04/2014 07:35:20
Hola Gonzalo, si utilizas el formato :variable, creo que tienes que utilizar bindParam()

Siguiendo tu ejemplo:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
function check_user_PDO($nombre)
{
    try
    {
        $db = Conexion_PDO();
        $find = $db->prepare("SELECT * FROM login WHERE usuario = :nombre");
        $find -> bindParam(":nombre", $nombre, PDO::PARAM_STR);
        $find -> execute();
        $count = $find -> rowCount();
        print ("Rows found: ". $count);
    }
    catch(PDOException $e)
    {
        echo $e->getMessage();
    }
}

De todas maneras, yo siempre utilizo el interrogante, ya que de esta manera, no tengo que definir el tipo de campo:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
function check_user_PDO($nombre)
{
    try
    {
        $db = Conexion_PDO();
        $find = $db->prepare("SELECT * FROM login WHERE usuario = ?");
        $find -> execute(array($nombre));
        $count = $find -> rowCount();
        print ("Rows found: ". $count);
    }
    catch(PDOException $e)
    {
        echo $e->getMessage();
    }
}

Espero que te sirva... coméntanos, ok?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar