PDO Transactions
PDO provides beginTransaction(), commit(), and rollBack() for managing transactions in PHP.
PDO provides beginTransaction(), commit(), and rollBack() for managing transactions in PHP.
try {
$pdo->beginTransaction();
$pdo->prepare("UPDATE accounts SET balance = balance - ? WHERE id = ?")->execute([500, 1]);
$pdo->prepare("UPDATE accounts SET balance = balance + ? WHERE id = ?")->execute([500, 2]);
$pdo->commit();
} catch (PDOException $e) {
$pdo->rollBack();
throw $e;
}
// Laravel:
DB::transaction(function () { /* ... */ }, retries: 3);
DB::transaction() in Laravel auto-rolls back on exception and optionally retries on deadlock.