> ### ***事務機制:(只有引擎是InnoDB才支持)***
事物就是同步進行的一種操作,比如張三給李四轉賬,只要張三和李四有一步操作錯誤,那么這次事物就失敗,事物必須兩者沒有一方出錯,才能進行下去。
```
beginTransaction()#開啟任務
commit()#成功提交本次任務
rollback()#失敗撤消本次任務
PDOException異常處理:
getMessage()
getFile()
getLine()
```
*****
> ***一次事物機制的案例,同時刪除兩條數據,如果有一條出錯,則退回,都不執行***
```
$pdo = new PDO('mysql:host=localhost;dbname=douphp','root','123456');
$pdo->exec('set names utf8');
#修改拋出異常模式,默認為不拋出
$pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
#開啟事物
$pdo->beginTransaction();
try{
#刪除一條
$sql = "delete from user where id =1";
$smt=$pdo->prepare($sql);
$smt->execute();
#刪除另一條
$sql = "delete from user where id =2";
$smt=$pdo->prepare($sql);
$smt->execute();
#無錯提交
$pdo->commit();
}catch(PDOException $e) {
#打印出錯誤信息
echo $e->getMessage();
#有錯撤回
$pdo->rollBack();
}
```