牛骨文教育服务平台(让学习变的简单)
博文笔记

yii2的事务处理

创建时间:2016-07-26 投稿人: 浏览次数:1057

第一步,开启事务

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



声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。