Conexión a MySQL con PDO
Cree una conexión PDO con DSN, usuario y contraseña.
Conexión a MySQL con PDO es una lección gratuita de PHP Academy en CoddyKit. Esta es la lección 1 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de PHP Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de PHP Academy incluye 4 lecciones en total.
¿Qué es PDO?
PDO (Objetos de datos de PHP) es una capa de abstracción para el acceso a bases de datos. Una misma API funciona con MySQL, PostgreSQL, SQLite y otros sistemas; solo debe cambiar el DSN.
El DSN
Una cadena DSN (nombre del origen de datos) identifica el controlador, el host, el puerto y el nombre de la base de datos.
<?php
$dsn = "mysql:host=127.0.0.1;port=3306;dbname=myapp;charset=utf8mb4";Crear una instancia de PDO
Proporcione el DSN, el nombre de usuario y la contraseña al constructor de PDO. Utilice try/catch para gestionar los errores de conexión.
<?php
try {
$pdo = new PDO(
"mysql:host=127.0.0.1;dbname=myapp;charset=utf8mb4",
"db_user",
"db_pass"
);
} catch (PDOException $e) {
die("Connection failed: ".$e->getMessage());
}Modo de errores
Configure el modo de errores para que lance excepciones y los errores nunca se ignoren silenciosamente.
<?php
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);Modo de obtención predeterminado
Configure el estilo de obtención predeterminado; las matrices asociativas son las más prácticas.
<?php
$pdo->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);Configuración completa de la conexión
Práctica recomendada: cree PDO una sola vez con todos los atributos y, después, comparta la instancia.
<?php
function createPDO(): PDO {
return new PDO(
"mysql:host=127.0.0.1;dbname=myapp;charset=utf8mb4",
"root", "secret",
[
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
PDO::ATTR_EMULATE_PREPARES => false,
]
);
}Sentencias preparadas emuladas
Establecer ATTR_EMULATE_PREPARES en false utiliza verdaderas sentencias preparadas del lado del servidor, que son más seguras y eficientes.
charset=utf8mb4
Especifique siempre charset=utf8mb4 en el DSN. Esto admite todo el rango Unicode, incluidos los emojis. Nunca use el alias antiguo utf8.
Ejecutar una consulta sencilla
Use query() únicamente para sentencias que no contengan datos introducidos por el usuario.
<?php
$stmt = $pdo->query("SELECT COUNT(*) as total FROM users");
$row = $stmt->fetch();
echo $row["total"];exec() para operaciones distintas de SELECT
exec() ejecuta una sentencia que no devuelve resultados y devuelve el número de filas afectadas.
<?php
$count = $pdo->exec("DELETE FROM sessions WHERE expires_at < NOW()");
echo "Deleted $count expired sessions";Conexiones persistentes
PDO admite conexiones persistentes mediante PDO::ATTR_PERSISTENT => true. En entornos PHP-FPM, normalmente es preferible un grupo de conexiones.
Resumen
Cree PDO con un DSN, establezca ERRMODE_EXCEPTION y FETCH_ASSOC y desactive las sentencias preparadas emuladas. Nunca llame a query() con datos proporcionados por el usuario; use sentencias preparadas.
Comprobación rápida
¿Qué atributo hace que PDO lance excepciones cuando se producen errores?
Preguntas frecuentes
¿La lección «Conexión a MySQL con PDO» es gratis?
Sí — el texto completo de «Conexión a MySQL con PDO» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de PHP Academy, actualiza a CoddyKit PRO. El curso de PHP Academy incluye 4 lecciones en total.
¿Qué aprenderé en «Conexión a MySQL con PDO»?
Cree una conexión PDO con DSN, usuario y contraseña. Practicas PHP Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar PHP Academy?
No se requiere experiencia previa. PHP Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 1 de 4.
¿Cuánto tiempo toma la lección «Conexión a MySQL con PDO»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de PHP Academy?
Sí. Cada lección de PHP Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Conexión a MySQL con PDO
- Sentencias preparadas y vinculación de parámetros
- Obtención de resultados con PDO
- Transacciones con PDO