第一步,开启事务
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();// 如果出现错误,回滚,不执行任何操作 }