Conectar PHP con MySQL es uno de los primeros pasos para crear sistemas web dinámicos, paneles administrativos, APIs, blogs, tiendas virtuales o plataformas empresariales.
Aunque existen muchas formas de hacerlo, una de las más recomendadas actualmente es utilizar PDO, ya que permite trabajar de forma más segura, ordenada y compatible con diferentes bases de datos.
✅ Paso 1: Crear la base de datos
Lo primero es tener una base de datos creada en MySQL. Puedes hacerlo desde phpMyAdmin o mediante una consulta SQL.
CREATE DATABASE mi_sistema CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
Usar utf8mb4 permite almacenar correctamente caracteres especiales, tildes, emojis y símbolos.
✅ Paso 2: Crear una tabla de prueba
Después de crear la base de datos, puedes agregar una tabla sencilla para probar la conexión.
CREATE TABLE usuarios (
id INT AUTO_INCREMENT PRIMARY KEY,
nombre VARCHAR(100) NOT NULL,
email VARCHAR(150) NOT NULL,
fecha_registro DATETIME DEFAULT CURRENT_TIMESTAMP
);
✅ Paso 3: Crear el archivo de conexión
Crea un archivo llamado conexion.php. Este archivo será el encargado de conectarse a MySQL.
<?php
$host = "localhost";
$dbname = "mi_sistema";
$user = "root";
$password = "";
try {
$pdo = new PDO(
"mysql:host=$host;dbname=$dbname;charset=utf8mb4",
$user,
$password
);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
die("Error de conexión a la base de datos.");
}
?>
Es importante no mostrar el error real al usuario final, ya que podría revelar información sensible del servidor.
✅ Paso 4: Insertar datos de forma segura
Para guardar información, lo más recomendable es usar consultas preparadas. Esto ayuda a prevenir ataques de SQL Injection.
<?php
require_once "conexion.php";
$nombre = "Carlos Pérez";
$email = "carlos@ejemplo.com";
$sql = "INSERT INTO usuarios (nombre, email) VALUES (:nombre, :email)";
$stmt = $pdo->prepare($sql);
$stmt->execute([
":nombre" => $nombre,
":email" => $email
]);
echo "Usuario registrado correctamente.";
?>
✅ Paso 5: Consultar datos desde MySQL
Una vez tengas datos guardados, puedes consultarlos desde PHP.
<?php
require_once "conexion.php";
$sql = "SELECT id, nombre, email, fecha_registro FROM usuarios ORDER BY id DESC";
$stmt = $pdo->query($sql);
while ($usuario = $stmt->fetch(PDO::FETCH_ASSOC)) {
echo $usuario["nombre"] . " - " . $usuario["email"] . "<br>";
}
?>
✅ Paso 6: Buscar un registro específico
Cuando necesites buscar por un dato enviado por el usuario, usa siempre parámetros preparados.
<?php
require_once "conexion.php";
$id = 1;
$sql = "SELECT * FROM usuarios WHERE id = :id";
$stmt = $pdo->prepare($sql);
$stmt->execute([":id" => $id]);
$usuario = $stmt->fetch(PDO::FETCH_ASSOC);
if ($usuario) {
echo "Usuario encontrado: " . $usuario["nombre"];
} else {
echo "Usuario no encontrado.";
}
?>
✅ Paso 7: Cerrar o reutilizar la conexión
En PHP normalmente no necesitas cerrar manualmente la conexión, ya que el proceso termina al finalizar la petición.
Sin embargo, puedes liberar la conexión asignando null:
$pdo = null;
💡 Recomendaciones finales
- Usa PDO o MySQLi con consultas preparadas.
- No muestres errores reales de conexión al usuario final.
- Valida siempre los datos recibidos por formularios.
- Usa utf8mb4 para evitar problemas con caracteres especiales.
- Organiza la conexión en un archivo separado.
- Evita guardar contraseñas directamente en archivos públicos.
🎯 Conclusión
Crear una conexión segura entre PHP y MySQL es una base fundamental para cualquier proyecto web.
Usar PDO, consultas preparadas y una estructura ordenada permite construir aplicaciones más seguras, estables y fáciles de mantener.