Trabajo con PDO
Use PHP Data Objects (PDO) para interactuar con bases de datos
Trabajo con PDO es una lección gratuita de PHP Academy en CoddyKit. Esta es la lección 6 de 6. 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 6 lecciones en total.
Descripción general de PDO
Trabajar con PDO
¡Bienvenido a la siguiente lección! En esta lección aprenderá a utilizar PDO (PHP Data Objects) para interactuar con bases de datos. PDO es una forma flexible y segura de conectarse a bases de datos y trabajar con ellas. ¡Comencemos!

¿Qué es PDO?
¿Qué es PDO?
PDO (PHP Data Objects) es una capa de acceso a bases de datos que proporciona una interfaz uniforme para trabajar con distintos sistemas de bases de datos. Es compatible con varias bases de datos, como MySQL, PostgreSQL, SQLite y otras.
Características principales:
- Independencia de la base de datos (funciona con varios tipos de bases de datos).
- Compatibilidad integrada con sentencias preparadas.
- Opciones avanzadas de gestión de errores.
Consejo: PDO es una excelente opción para crear aplicaciones web seguras y escalables.
Conexión a una base de datos con PDO
Conexión a una base de datos con PDO
Para conectarse a una base de datos mediante PDO, necesita:
- El nombre del origen de datos (DSN), incluido el tipo, el host y el nombre de la base de datos.
- Un nombre de usuario y una contraseña válidos.
Ejemplo:
Consejo: Utilice variables de entorno o archivos de configuración para las credenciales confidenciales.
<?php
$dsn = "mysql:host=localhost;dbname=testdb";
$username = "root";
$password = "";
try {
$pdo = new PDO($dsn, $username, $password);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo "Connected successfully!";
} catch (PDOException $e) {
echo "Connection failed: " . $e->getMessage();
}
?>
Ejecución de consultas
Ejecución de consultas
PDO proporciona dos métodos principales para ejecutar consultas:
exec(): Para sentencias que no devuelven resultados (por ejemplo,INSERTyUPDATE).query(): Para sentencias que devuelven resultados (por ejemplo,SELECT).
Ejemplo:
<?php
// Insert a record
$pdo->exec("INSERT INTO users (name, email) VALUES ('Alice', 'alice@mail.com')");
// Retrieve records
$stmt = $pdo->query("SELECT * FROM users");
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
echo "Name: " . $row["name"] . ", Email: " . $row["email"] . "<br>";
}
?>
Uso de sentencias preparadas
Uso de sentencias preparadas
Las sentencias preparadas son esenciales para interactuar con la base de datos de forma segura y eficiente. Ejemplo:
Consejo: Utilice marcadores de posición (:email) para evitar la inyección SQL.
<?php
$sql = "SELECT * FROM users WHERE email = :email";
$stmt = $pdo->prepare($sql);
$stmt->execute(["email" => "alice@mail.com"]);
$user = $stmt->fetch(PDO::FETCH_ASSOC);
echo "Name: " . $user["name"];
?>
Gestión de errores en PDO
Gestión de errores en PDO
PDO admite tres modos de gestión de errores:
ERRMODE_SILENT: Los errores se deben comprobar manualmente.ERRMODE_WARNING: Los errores generan advertencias de PHP.ERRMODE_EXCEPTION: Los errores lanzan excepciones (recomendado).
Ejemplo:
<?php
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
try {
$pdo->exec("INVALID SQL STATEMENT");
} catch (PDOException $e) {
echo "Error: " . $e->getMessage();
}
?>
Recuperación de datos
Recuperación de datos
PDO proporciona varios métodos de recuperación:
fetch(): Recupera una sola fila.fetchAll(): Recupera todas las filas.fetchColumn(): Recupera el valor de una sola columna.
Ejemplo:
<?php
$stmt = $pdo->query("SELECT name FROM users");
while ($name = $stmt->fetchColumn()) {
echo "User: " . $name . "<br>";
}
?>Gestión de transacciones
Gestión de transacciones
Utilice transacciones para ejecutar varias consultas como una sola unidad. Ejemplo:
Consejo: Utilice transacciones para garantizar la integridad de los datos.
<?php
try {
$pdo->beginTransaction();
$pdo->exec("INSERT INTO users (name, email) VALUES ('Bob', 'bob@mail.com')");
$pdo->exec("INSERT INTO users (name, email) VALUES ('Charlie', 'charlie@mail.com')");
$pdo->commit();
echo "Transaction successful!";
} catch (PDOException $e) {
$pdo->rollBack();
echo "Transaction failed: " . $e->getMessage();
}
?>
¡Buen trabajo!
¡Buen trabajo!
¡Enhorabuena! Ha aprendido a utilizar PDO para interactuar con la base de datos de forma segura y eficiente, incluyendo la conexión, la ejecución de consultas y la gestión de transacciones. En la próxima lección, exploraremos técnicas avanzadas de consulta SQL con PDO. ¡Sigamos programando!

Preguntas frecuentes
¿La lección «Trabajo con PDO» es gratis?
Sí — el texto completo de «Trabajo 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 6 lecciones en total.
¿Qué aprenderé en «Trabajo con PDO»?
Use PHP Data Objects (PDO) para interactuar con bases de datos 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 6 de 6.
¿Cuánto tiempo toma la lección «Trabajo 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
- Introducción a las bases de datos
- Conexión a una base de datos MySQL
- Gestión de tablas
- Realización de operaciones CRUD
- Sentencias preparadas
- Trabajo con PDO