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.
Tabla de contenidos
- 1 1. Configurar el entorno con Docker
- 2 2. Iniciar los servicios
- 3 3. Conectarse a la base de datos desde terminal
- 4 4. Crear el formulario HTML
- 5 5. Usar el archivo db.php para la conexión
- 6 6. Procesar e insertar datos con create-contact.php
- 7 7. Probar desde el navegador
- 8 8. Verificar los datos desde terminal
- 9 Conclusión
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-phpapunta 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.";
}
?>
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.