Consultar datos de MySQL utilizando PDO

07/04/2020 | MySQL, PHP | 0 comentarios

Cómo obtener los datos de MySQL e imprimirlos en HTML de manera sencilla y segura utilizando PDO.

Descargar archivos Ver ejemplo

Consultar datos desde una Base de datos y mostrarlos en HTML es una de las tareas mas recurrentes en el desarrollo web, es sencillo pero es necesario tener cuidado para evitar problemas de seguridad y por ello usaremos PDO.

Conexión con PDO

En el artículo Conectar PHP con Base de Datos utilizando PDO hemos descrito como implementar una conexión de manera sencilla.

La conexión se implementa y configura en el archivo pdo.php y para utilizarlo se lo importa de la siguiente forma:

Métodos para consultas de PDO

PDO ofrece los siguientes métodos para enviar una consulta a base de datos:

  • prepare prepara una sentencia para su ejecución y devuelve un objeto sentencia.
  • bindValue vincula una variable con un parámetro de la consulta.
  • execute ejecuta una sentencia preparada previamente.

PDO ofrece los siguientes métodos para recorrer los datos obtenidos por la consulta:

  • fetch obtiene el siguiente registro de los resultados.
  • fetchAll obtiene un array con todos los registros de los resultados.

Con estos métodos es posible consultar datos e imprimirlos en HTML, para entender cómo hacerlo usaremos un ejemplo práctico.

Ejemplo práctico

Para el ejemplo usaremos una base de datos en MySQL que contiene una tabla llamada country con la información de todos los países.

Listado de países

Consultamos la lista de países utilizando los métodos prepare y execute.

Recorremos los resultados utilizando el método fetch y generamos un listado con enlaces al detalle del país.

Detalle del país

Para obtener los datos del país seleccionado vamos a seguir los siguientes pasos:

  • Obtenemos el código de país con filter_input que permite obtener un parámetro y filtrarlo como string utilizando la opción FILTER_SANITIZE_STRING.
  • Preparamos la consulta que contiene un parámetro, utilizamos bindValue para asignar el valor del parámetro y lo convertimos a string con la opción PDO::PARAM_STR.
  • Obtenemos el resultado con el método fetch y si no hay resultados hacemos una redirección al listado de países

Luego sólo queda imprimir todos los datos del país e incluir un enlace de regreso al listado:

Cómo se observa obtener los datos en sencillo y en pocos pasos pero hemos agregado algunas validaciones para evitar problemas de seguridad.

Recomendaciones

Cuando se utilizan datos que vienen de los usuarios es indispensable limpiarlos y validarlos antes de usarlos en las consultas para evitar problemas de seguridad.

Es necesario contemplar los casos que puedan generar error, por ejemplo: si un código de país no existe hay que redireccionar al listado principal.

Al utilizar bindValue para asignar valores a los parámetros se recomienda seleccionar el tipo de dato correcto para evitar ataques de inyección SQL.

Referencias

Envíar Comentario

En este sitio los comentarios se publican previa aprobación del equipo de Kodetop. Evita los comentarios ofensivos, obscenos o publicitarios. Si deseas publicar código fuente puedes hacerlo entre las etiquedas <pre></pre>