yii2的事务处理

第一步,开启事务

Yii::$app->db->beginTransaction();// yii2中开启事务的方式

第二步,创建sql
 
 
$teacher = Teacher::findOne(2);
dd($teacher);// dd为自己写的全局方法,格式化var_dump输出的内容

$classe = Classe::findOne(1);
dd($classe);

$teacher->tname = 'zhangdage';// teacher表修改tname字段,没有错误
$data = $teacher->update();// 因为已经开启事务,此处会执行成功,但不会往数据库修改数据
dd($data);

$classe->cname = 'sadasdasdasdasdasdasdsadas';// classe表修改cname字段,由于数据库字段类型为varchar(10),此处超出长度,更新时会出现错误
$data2 = $classe->update();// 此处会返回false
dd($data2);
 
 
 
 
if ($data && $data2) {
    $transaction->commit();// 事务提交,修改数据库中的信息
} else {
    echo '出错了';
    $transaction->rollBack();// 如果出现错误,回滚,不执行任何操作
}



猜你喜欢

转载自blog.csdn.net/zlh13854157321/article/details/52032735