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

Why Database Transactions Matter أهمية المعاملات الذرية Transactions

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

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

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

تتطلب العديد من العمليات الحساسة تنفيذ عدة استعلامات SQL مترابطة لا يصح نجاح بعضها وفشل البعض الآخر — مثل تحويل مبلغ مالي بين حسابين، أو إنشاء فاتورة طلب وخصم الكمية من المخزون. هنا تضمن المعاملة الذرية (Database Transaction) قاعدة الكل أو لا شيء (All-or-Nothing):

  • خطر غياب المعاملة: إذا خُصم المبلغ من حساب المرسل في الاستعلام الأول، ثم وقع خطأ قبل إضافته لحساب المستلم في الاستعلام الثاني، ستتلف البيانات المالية!
  • حماية المعاملة الذرية: إما أن تنجح جميع الاستعلامات معاً ويتم اعتمادها، أو يتم التراجع عنها جميعاً بالكامل عند وقوع أي عطل.
مخطط تدفق التنفيذ العملي لقسم أهمية المعاملات الذرية Transactions في لغة PHP
PHP
<?php
$pdo = new PDO("sqlite::memory:");
$pdo->exec("CREATE TABLE accounts (id INT, balance INT)");
$pdo->exec("INSERT INTO accounts VALUES (1, 500), (2, 200)");

// Check whether a transaction is currently active:
echo $pdo->inTransaction() ? "Active" : "Auto-commit mode";