2016-10-19 10:19:14 8092次浏览 3条回答 1 悬赏 100 金钱

畅所欲言,欢迎大牛踊跃发言~~~

  • 回答于 2016-10-19 10:39 举报

    菜鸟变身吃瓜群众 😆

  • 回答于 2016-10-19 10:47 举报

    没用过...

    觉得很赞
  • 回答于 2016-10-19 11:06 举报

    yii2的数据交互就有很明显的例子丫:

    $db = Yii::$app->db;
    $outerTransaction = $db->beginTransaction();
    try {
        $db->createCommand($sql1)->execute();
    
        $innerTransaction = $db->beginTransaction();
        try {
            $db->createCommand($sql2)->execute();
            $innerTransaction->commit();
        } catch (\Exception $e) {
            $innerTransaction->rollBack();
            throw $e;
        }
    
        $outerTransaction->commit();
    } catch (\Exception $e) {
        $outerTransaction->rollBack();
        throw $e;
    }
    
    4 条回复
    回复于 2016-10-19 13:36 回复

    例子我知道啊,想探讨一下,如何正确使用,什么时候使用,那些方面使用

    回复于 2016-10-19 14:35 回复

    我也不知道怎么表达,但是我的理解是,如果希望程序在出现运行时错误的时候,还能正常的执行代码,就使用异常,比如,你的数据库操作,当你不捕获异常,那么页面显示的就是500,当我捕获异常之后,我的catch语句还能执行,我可以子啊catch语句中做其他处理,然后catch语句之后,我还能继续执行其他逻辑,并且按照我的预期返回比500更合适的提示。

    回复于 2016-10-19 15:31 回复

    当同时要进行好几条数据插入或修改的时候使用,防止其中某一个出错影响其他的

    回复于 2016-10-19 18:57 回复

    哥们,我觉得你这个说法好像不对,如果确实是事务的控制,应该是其中有一个出错,必须的影响其他,保证一致性,要么全部成功,要么全部失败,所以在catch中需要回滚。

您需要登录后才可以回答。登录 | 立即注册
iceluo
副董事长

iceluo

注册时间:2015-07-21
最后登录:2023-08-30
在线时长:854小时35分
  • 粉丝22
  • 金钱10945
  • 威望80
  • 积分20285

热门问题