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("UPDATE dessert SET name = 'hamburger'");/* รับรู้ข้อผิดพลาดและย้อนกลับการเปลี่ยนแปลง*/$dbh->rollBack();/* ขณะนี้การเชื่อมต่อฐานข้อมูลกลับมาอยู่ในโหมดคอมมิตอัตโนมัติ*/?>