PDO::beginTransaction يبدأ المعاملة (PHP 5 >= 5.1.0، PECL pdo >= 0.1.0)
منطقي PDO::beginTransaction (باطل)
قم بإيقاف تشغيل وضع الالتزام التلقائي. عند إيقاف تشغيل وضع الالتزام التلقائي، لا يتم الالتزام بالتغييرات التي يتم إجراؤها على قاعدة البيانات من خلال مثيلات كائن PDO حتى يتم استدعاء PDO::commit() لإنهاء المعاملة.
سيؤدي استدعاء PDO::rollBack() إلى التراجع عن التغييرات التي تم إجراؤها على قاعدة البيانات وإعادة اتصال قاعدة البيانات إلى وضع الالتزام التلقائي.
تقوم بعض قواعد البيانات، بما في ذلك MySQL، بتنفيذ معاملة ضمنية تلقائيًا عند إصدار عبارة DDL مثل DROP TABLE أو CREATE TABLE.
سيؤدي الالتزام ضمنيًا إلى منعك من التراجع عن أي تغييرات أخرى ضمن نطاق هذه المعاملة.
المثال التالي يبدأ معاملة ويصدر عبارتين لتعديل قاعدة البيانات قبل التراجع عن التغييرات.
لكن في MySQL، تقوم عبارة DROP TABLE بتنفيذ المعاملة تلقائيًا حتى لا يتم التراجع عن أي تغييرات في هذه المعاملة.
<?php/* بدء معاملة وإيقاف الإرسال التلقائي*/$dbh->beginTransaction();/* تغيير بنية قاعدة البيانات والبيانات*/$sth = $dbh->exec("DROP TABLE Fruit");$ sth = $dbh->exec("تحديث اسم مجموعة الحلوى = 'هامبرغر'");/* تعرف على الخطأ واسترجاع التغييرات*/$dbh->rollBack();/* لقد عاد الآن اتصال قاعدة البيانات إلى وضع الالتزام التلقائي*/?>