0Pricing
PHP Academy · Lección

Transacciones con PDO

Agrupe varias consultas en transacciones atómicas con beginTransaction y commit.

Transacciones con PDO es una lección gratuita de PHP Academy en CoddyKit. Esta es la lección 4 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 una transacción?

Una transacción agrupa varias sentencias SQL en una única unidad atómica: todas se completan correctamente (commit) o todas se revierten.

Propiedades ACID

Las transacciones garantizan ACID: atomicidad, coherencia, aislamiento y durabilidad.

beginTransaction()

Inicie una transacción con $pdo->beginTransaction(). La confirmación automática se desactiva hasta que llame a commit() o rollBack().

commit()

Guarda permanentemente todos los cambios realizados desde beginTransaction().

rollBack()

Descarta todos los cambios realizados desde beginTransaction() y devuelve la base de datos al estado que tenía antes de la transacción.

Patrón de transacción

Incluya siempre las transacciones en un bloque try/catch:

<?php
try {
    $pdo->beginTransaction();

    $pdo->prepare("UPDATE accounts SET balance = balance - ? WHERE id = ?")
        ->execute([100, $senderId]);

    $pdo->prepare("UPDATE accounts SET balance = balance + ? WHERE id = ?")
        ->execute([100, $receiverId]);

    $pdo->commit();
} catch (PDOException $e) {
    $pdo->rollBack();
    throw $e;
}

Puntos de guardado

PDO no admite transacciones anidadas de forma nativa. Use comandos SQL SAVEPOINT para realizar reversiones parciales dentro de una transacción.

inTransaction()

Compruebe si hay una transacción activa con $pdo->inTransaction(). Devuelve true o false.

Modo de confirmación automática

De forma predeterminada, PDO está en modo de confirmación automática: cada sentencia se confirma inmediatamente. beginTransaction() desactiva la confirmación automática.

Niveles de aislamiento

MySQL admite: READ UNCOMMITTED, READ COMMITTED, REPEATABLE READ (predeterminado) y SERIALIZABLE. Establézcalo con $pdo->exec("SET TRANSACTION ISOLATION LEVEL READ COMMITTED").

Cuándo usar transacciones

Úselas para transferencias bancarias, realizar pedidos con deducción de inventario y cualquier escritura en varias tablas en la que no sea aceptable una finalización parcial.

DDL y transacciones

En MySQL, las sentencias DDL (CREATE TABLE, ALTER TABLE) provocan una confirmación implícita. No puede revertir DDL dentro de una transacción.

Comprobación rápida

¿Qué hace rollBack()?

Preguntas frecuentes

¿La lección «Transacciones con PDO» es gratis?

Sí — el texto completo de «Transacciones 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 «Transacciones con PDO»?

Agrupe varias consultas en transacciones atómicas con beginTransaction y commit. 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 4 de 4.

¿Cuánto tiempo toma la lección «Transacciones 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

  1. Conexión a MySQL con PDO
  2. Sentencias preparadas y vinculación de parámetros
  3. Obtención de resultados con PDO
  4. Transacciones con PDO
← Volver a PHP Academy