انتقل إلى محتوى الدرس

Commit and Rollback Transactions اعتماد المعاملة أو التراجع عنها

تعلّم تحديث وحذف السجلات وإدارة المعاملات البنكية في PDO بأسلوب PHP 8 الحديث مع أمثلة عملية وتطبيقات تفاعلية.
1 صفوف تعليمية
PHP
1 مشاهدة

شرح صفوف ومحتوى الفقرة

الصف 1 شرح توضيحي

تُدار المعاملات في PDO بهيكل قياسي محكم داخل كتلة try / catch عبر ثلاث دوال في الكائن $pdo:

  • $pdo->beginTransaction(): توقف الاعتماد التلقائي وتبدأ معاملة جديدة معزولة.
  • $pdo->commit(): توضع في نهاية كتلة try لاعتماد وحفظ كافة التعديلات بشكل دائم بعد نجاح جميع الخطوات.
  • $pdo->rollBack(): توضع داخل كتلة catch (Throwable $e) (مع فحص if ($pdo->inTransaction())) لإلغاء جميع التغييرات وإعادة البيانات لحالتها الأصلية فور وقوع أي خطأ.
PHP
<?php
$pdo->beginTransaction();
try {
    $stmt = $pdo->prepare("UPDATE wallets SET bal = bal + :amt WHERE id = :id");
    $stmt->execute(["amt" => -100, "id" => 1]);
    $stmt->execute(["amt" => 100, "id" => 2]);
    $pdo->commit();
    echo "Transfer committed.";
} catch (Throwable $e) {
    if ($pdo->inTransaction()) { $pdo->rollBack(); }
}