Conexión a MySQL con PDO y consultas dinámicas en PHP

Clase 7 de 33Curso de PHP Avanzado

Resumen

Comenzar a trabajar con bases de datos desde PHP puede parecer desafiante, pero es posible hacerlo fácilmente usando PDO en combinación con MySQL. Este contenido explica cómo crear y manipular tablas, importar datos, realizar consultas y visualizar la información de manera efectiva.

¿Cómo crear una base de datos y tablas en MySQL?

Para iniciar nuestro trabajo necesitamos conectarnos a la base de datos con nuestras credenciales habituales. Una vez conectados creamos una base de datos llamada "web PHP". Seguidamente, definimos las tablas que alojarán nuestros datos:

  • Accede al cliente de base de datos.
  • Crea una tabla, por ejemplo, "enlaces", estableciendo columnas específicas como "título" o "descripción", con una longitud indicada y restringiendo los campos vacíos.
  • Alternativamente, utilizamos un archivo SQL provisto por separado (por ejemplo, database.sql) para importar una estructura y datos predefinidos al pulsar el botón "importar" y cargar dicho archivo.

¿Cómo conectar PHP utilizando PDO y realizar consultas?

PHP Data Objects (PDO) ofrece una capa abstracta para interactuar con diferentes tipos de bases de datos. Para conectarnos a MySQL usando PDO es necesario:

  • Definir la conexión indicándole el servidor, usuario, contraseña y base de datos mediante DSN (Data Source Name).
  • Especificar la codificación a utilizar (generalmente UTF-8).

Ejemplo de conexión PDO:

$dsn = "mysql:host=127.0.0.1;dbname=web-PHP;charset=utf8";
$usuario = "tu-usuario";
$contraseña = "tu-contraseña";

$pdo = new PDO($dsn, $usuario, $contraseña);

Para consultar datos:

SELECT * FROM enlaces ORDER BY id DESC;

Esta consulta se integra desde PHP:

$query = $pdo->query("SELECT * FROM enlaces ORDER BY id DESC");
$enlaces = $query->fetchAll();

¿Cómo mostrar información dinámica en tu página web con PHP?

Tras obtener nuestras consultas, imprimimos esta información en el frontend usando estructuras como foreach. Ejemplo sencillo:

<?php foreach ($enlaces as $enlace): ?>
    <h3><?= $enlace['titulo']; ?></h3>
    <a href="<?= $enlace['url']; ?>"><?= $enlace['descripcion']; ?></a>
<?php endforeach; ?>

De la misma forma, para limitar la cantidad de registros a mostrar, añadimos LIMIT en nuestras consultas SQL desde PHP:

SELECT * FROM publicaciones LIMIT 6;

Y mostramos los datos en página inicio:

<?php foreach ($publicaciones as $publicacion): ?>
    <h3><?= $publicacion['titulo']; ?></h3>
    <p><?= $publicacion['extracto']; ?></p>
<?php endforeach; ?>

¿Cómo mejorar la apariencia visual en HTML?

Logramos una apariencia visual más ordenada agregando clases CSS específicas. Ejemplo práctico con un espacio adicional usando la clase mb-8:

<div class="mb-8">
    Contenido de navegación nuevo
</div>

Implementar esta clase permite que la página "respire" mejor, mejorando la experiencia visual.

Finalmente, es recomendable editar tu archivo SQL, manipulando directamente la información para familiarizarte profundamente con el proceso de trabajo con bases de datos. Así podrás adquirir mayor comprensión sobre técnicas y consultar tus propias dudas prácticas.