Aprende Inteligencia Artificial y Acelera tu Futuro

Descubre cómo la IA puede multiplicar tu productividad y cambiar tu forma de trabajar.

Acceder al Curso Ahora

Cómo Insertar Datos en una Base de Datos con PHP Usando Docker (Terminal)

En este tutorial aprenderás a insertar datos en una base de datos MariaDB utilizando PHP y Docker, todo desde la terminal, sin interfaces gráficas. Harás la conexión, crearás la tabla, enviarás datos desde un formulario y comprobarás los resultados como un verdadero backend developer.


1. Configurar el entorno con Docker

Crea un archivo docker-compose.yml con este contenido:

version: '3.8'

services:
  web:
    build: .
    container_name: php-web
    ports:
      - "8080:80"
    volumes:
      - ../academia-php:/var/www/html
    depends_on:
      - db

  db:
    image: mariadb:11
    container_name: mariadb
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: root
      MYSQL_DATABASE: academia
      MYSQL_USER: administrador
      MYSQL_PASSWORD: administrador123
    volumes:
      - ./db:/var/lib/mysql
    ports:
      - "3306:3306"

Asegúrate de que ../academia-php apunta al directorio de tu proyecto PHP.


2. Iniciar los servicios

En la terminal, navega al directorio donde tienes el docker-compose.yml y ejecuta:

docker compose up -d

Esto levantará dos contenedores: el servidor web con PHP y la base de datos MariaDB.


3. Conectarse a la base de datos desde terminal

Para conectarte al servidor MariaDB desde la terminal:

docker exec -it mariadb mariadb -uadministrador -padministrador123 academia

Una vez dentro del cliente MySQL, ejecuta:

CREATE TABLE contactos (
  id INT AUTO_INCREMENT PRIMARY KEY,
  nombre VARCHAR(255),
  telefono VARCHAR(50),
  correo VARCHAR(255),
  mensaje TEXT
);

Esto creará la tabla donde guardarás los datos del formulario.


4. Crear el formulario HTML

Crea el archivo contacto.php en tu proyecto con el siguiente contenido:

<main>
  <h1>Contacto</h1>
  <form action="create-contact.php" method="post">
    <label for="nombre">Nombre:</label>
    <input type="text" id="nombre" name="nombre" required>

    <label for="telefono">Teléfono:</label>
    <input type="text" id="telefono" name="telefono" required>

    <label for="correo">Correo electrónico:</label>
    <input type="email" id="correo" name="correo" required>

    <label for="mensaje">Mensaje:</label>
    <textarea id="mensaje" name="mensaje" rows="5" required></textarea>

    <button type="submit">Enviar</button>
  </form>
</main>

5. Usar el archivo db.php para la conexión

No necesitas crear un nuevo archivo de conexión si ya tienes db.php. Asegúrate de que su contenido se parezca a esto:

<?php
$host = 'db';  // Este nombre debe coincidir con el servicio en docker-compose
$dbname = 'academia';
$user = 'administrador';
$pass = 'administrador123';

try {
    $pdo = new PDO("mysql:host=$host;dbname=$dbname;charset=utf8", $user, $pass);
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
    die("Error de conexión: " . $e->getMessage());
}
?>

Este archivo gestiona la conexión a MariaDB usando PDO.


6. Procesar e insertar datos con create-contact.php

Crea este archivo en tu proyecto para recibir y guardar los datos del formulario:

<?php
require 'db.php';

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $nombre   = $_POST['nombre'] ?? '';
    $telefono = $_POST['telefono'] ?? '';
    $correo   = $_POST['correo'] ?? '';
    $mensaje  = $_POST['mensaje'] ?? '';

    $sql = "INSERT INTO contactos (nombre, telefono, correo, mensaje)
            VALUES (:nombre, :telefono, :correo, :mensaje)";

    $stmt = $pdo->prepare($sql);
    $result = $stmt->execute([
        ':nombre'   => $nombre,
        ':telefono' => $telefono,
        ':correo'   => $correo,
        ':mensaje'  => $mensaje
    ]);

    if ($result) {
        echo "Contacto creado con éxito.";
    } else {
        echo "Error al crear el contacto.";
    }
} else {
    echo "Error: método POST requerido.";
}
?>

7. Probar desde el navegador

Abre en tu navegador:

http://localhost:8080/contacto.php

Rellena el formulario y pulsa «Enviar».


8. Verificar los datos desde terminal

Vuelve a conectarte a MariaDB con:

docker exec -it mariadb mysql -uadministrador -padministrador123 academia

Y ejecuta:

SELECT * FROM contactos;

Verás los registros que hayas enviado desde el formulario.


Conclusión

Has completado el proceso entero como se muestra en el vídeo, solo con línea de comandos:

  • Levantar entorno Docker
  • Crear tabla con SQL
  • Conectar con PHP usando PDO
  • Insertar datos desde formulario
  • Verificar registros desde consola

Este enfoque es ideal para comprender cómo funciona el backend sin depender de interfaces gráficas.

¿Listos para hacer el sistema más seguro? En el siguiente tutorial trabajaremos en la validación de datos y protección frente a inyecciones SQL.

Tutoriales Más Vistos

Posts Más Vistos