Consultas base de datos con PDO

Consultas base de datos con PDO


Consultas base de datos con PDO

En este tutorial aprenderemos cómo crear consultas a bases de datos utilizando PDO y acceder a los valores devueltos.

Después de realizar la conexión con la base de datos, ver  Conexión a base de datos MYSQL con PDO , si todo ha ido bien ya podemos realizar consultas.

Métodos

Utilizaremos dos métodos:

  • $objetoPdo->exec($consulta)

Para realizar consultas sin resultado: Insert, update, delete, drop, truncate y create. Consultas que no devuelven ningún valor.

  • $objetoPdo->query($consulta)

Para consultas que devuelven valores: Consultas Select

Consultas sin resultado

//Consulta de inserción
$consulta = "INSERT INTO usuarios (nombre,dni) VALUES('Juan','43434343L');
//Ejecutamos la consulta
$objetoPdo->exec($consulta);

A diferencia de cuando utilizamos MYSQLi, que teníamos que usar los métodos affected_rows para saber las filas afectadas, en PDO el mismo método exec devuelve este valor

//Consulta de Delete
$consulta = "DELETE FROM usuarios WHERE nombre = 'Juan'";
//Ejecutamos la consulta
$afectados = $objetoPdo->exec($consulta);
//En $afectados guarda el número de filas afectadas
echo "Se han borrado " . $afectados . " registros"

Consultas con resultado

Para realizar consultas que devuelven algo utilizamos el método query

//Preparamos la consulta
$consulta = "SELECT nombre, dni FROM usuarios";
//Ejecutamos la consulta y guardamos el resultado
$resultado = $objetoPdo->query($consulta);
//Ahora resultado es como una tabla virtual con el resultado de la consulta

Para acceder a los valores devueltos por la consulta select utilizamos el método fetch

$resultado->fetch()

El método fetch genera y devuelve un array con claves numéricas y asociativas.

Podemos pasarle parámetros para cambiar este comportamiento.

  • PDO::FETCH_ASSOC (Devuelve un array asociativo)
  • PDO::FETCH_NUM (Devuelve un array con claves numéricas)
  • PDO::FETCH_BOTH (Comportamiento por defecto, igual que si no ponemos nada)

Veamos cómo recorrer los registros utilizando el método fetch por defecto

//El bucle While recorre una fila en cada vuelta y podemos acceder a los valores de cada fila
//El array asociativo $registro contiene los valores de la fila actual
while($registro = $resultado->fetch()) {
    echo "NOMBRE: " . $registro['nombre'] . ", DNI: " . $registro['dni'] . "<br>";
}

Para gestionar los errores o excepciones puedes ver Gestión de errores y excepciones PDO

Si te ha gustado no olvides compartir en redes sociales.

Espero que te haya servido. Cualquier duda deja un comentario. Un saludo

Dejar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Translate »
Ir a la barra de herramientas