ThinkPHP异常处理、事务处理(事务回滚)

本篇文章给大家介绍,ThinkPHP异常处理、事务处理(事务回滚),用购买下订单减库存的案例分析,希望对大家在工作和学习中有所帮助。

1、Mysql建表引擎使用InnoDB,支持事务回滚。

2、代码案例:

       try{ // 异常处理
            M()->startTrans(); // 开启事务
            $res = M('Good')->where(array('id'=>1))->setDec('good_num',1);
            if(!$res){
                throw new \Exception('商品不存在'); // 抛出异常
            }
            $res2 = M('Order')->add(array('num'=>1));
            if(!$res2){
                throw new \Exception('购买失败'); // 抛出异常
            }
            M()->commit(); // 执行
            echo '购买成功';
        }catch (\Exception $e){
            M()->rollback(); // 回滚
            echo $e->getMessage();
        }

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对北漂的程序猿的支持。

发表评论

电子邮件地址不会被公开。 必填项已用*标注