事务处理流程
- 开启事务
PDO::beginTransaction
- 事务操作
所有的实务操作就是增删改
- 事务提交
PDO::commit:成功后提交数据
PDO::rollback:失败后回滚数据
<?php //PDO事务处理
//连接认证
$pdo = new PDO('mysql:host=localhost;dbname=project','root','root'); //1. 开启事务
$res = $pdo->beginTransaction();
//var_dump($res); //2. 事务处理(多条SQL语句执行)
$sql = "update pro_student set s_age = 28 where s_id = 20";
$lines = $pdo->exec($sql);
//var_dump($lines); $sql = "select * from pro_student where s_id = 20";
$stmt = $pdo->query($sql);
//var_dump($stmt->fetch(PDO::FETCH_ASSOC)); //3. 提交事务
if($lines){
//更新成功
$pdo->commit();
}else{
//更新失败
echo '失败';
$pdo->rollback();
}
注意
- 要实现事务处理必须数据表的存储引擎为InnoDB
- 事务必须完整(开启à提交)