博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Yii2 事务
阅读量:6249 次
发布时间:2019-06-22

本文共 1081 字,大约阅读时间需要 3 分钟。

事务(Transaction)

在Yii中,使用 yii\db\Transaction 来表示数据库事务。

一般情况下,我们从数据库连接启用事务,通常采用如下的形式:

$transaction = $connection->beginTransaction();try {    $connection->createCommand($sql1)->execute();    $connection->createCommand($sql2)->execute();    // ... executing other SQL statements ...    $transaction->commit();} catch (Exception $e) {    $transaction->rollBack();}复制代码

在上面的代码中,先是获取一个 yii\db\Transaction 对象,之后执行若干SQL 语句,然后调用之前 Transaction 对象的 commit() 方法。这一过程中, 如果捕获了异常,那么调用 rollBack() 进行回滚。

嵌套事务

在开头的例子中,展现的是事务最简单的使用形式。Yii还允许把事务嵌套起来使用。 比如,可以采用如下形式来使用事务:

$outerTransaction = $db->beginTransaction();try {    $db->createCommand($sql1)->execute();    $innerTransaction = $db->beginTransaction();    try {        $db->createCommand($sql2)->execute();        $db->createCommand($sql3)->execute();        $innerTransaction->commit();    } catch (Exception $e) {        $innerTransaction->rollBack();    }    $db->createCommand($sql4)->execute();    $outerTransaction->commit();} catch (Exception $e) {    $outerTransaction->rollBack();复制代码

转载于:https://juejin.im/post/5aa7702e5188255572080b35

你可能感兴趣的文章
Jquery 下拉框取值
查看>>
IDEA中使用Maven创建Java Web项目
查看>>
2017.12.25
查看>>
react--1.创建项目
查看>>
11月20日学习内容整理:jquery插件
查看>>
预科班第四次考核总结
查看>>
html
查看>>
数据分析师到底在做什么?
查看>>
pt-heartbeat工具监控MySQL复制延迟
查看>>
指尖下的js —— 多触式web前端开发之三:处理复杂手势(转)
查看>>
spring boot项目配置文件集合
查看>>
cube-ui的用法
查看>>
2015.4.21 SetWindowPos函数用法
查看>>
2011-12-14 调用cmd并获得输入输出+网络访问
查看>>
TCP定时器详解
查看>>
if判断,switch语句
查看>>
Arduino入门之前
查看>>
zoj 1904 Beavergnaw 计算圆柱和圆台的体积
查看>>
整理了一份招PHP高级工程师的面试题(转)
查看>>
学习Raft算法的笔记
查看>>