> ### ***事务机制:(只有引擎是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();
}
```