laravel事务控制处理

淡淡的烟草味﹌ 2022-04-12 12:28 311阅读 0赞
  1. 在我们的业务处理中,有时候会遇到多个SQL语句的操作,并且他们是分开执行的,有时候他们是存在互相关联的,比如A表新添了一条记录,B表要对该记录进行关联,如果我们不对他们进行事务的控制,将有可能在突发的情况下,只执行成功了第一步操作,而第二步操作不执行,那么将会对数据关联造成影响,并且有时候在执行某个SQL语句产生错误造成死锁,这些都会对程序造成致命性的影响。
  2. 所以有时候对业务进行事务控制就显得非常有必要了,今天我给大家简单介绍如何简单的利用DB门面中[transaction][]方法进行数据库的事务控制。如果其中有一个发送错误,事务里面回滚,并返回错误信息,这样就不会执行之前的操作,保证了数据的有效性,因为事务必须全部成功走完一遍,才会执行,这样可以保证数据之间的关联。而且如果某个环节发送错误,他也可以抛出异常,不会对程序造成影响,下面我为大家简单介绍如何使用。
  3. 首页在我们的业务层中必须先引用DB,代码如下:
  4. use Illuminate\Support\Facades\DB;
  5. 然后在我们的方法中先放入事务结构,代码如下:
  6. DB::beginTransaction();
  7. try {
  8. DB::commit();
  9. return 'ok';
  10. } catch (\Exception $e) {
  11. DB::rollBack();
  12. return 'error';
  13. }
  14. 以上就是事务主体结构了,在try\{\}中我们放入我们的主要数据操作,在catch\{\}中主要是放我们的异常处理方法,熟悉PHP的朋友也应该会了解,我就不在这里给大家说明了。然后呢,这里有一点很重要就是,在处理完成后必须写上:
  15. DB::commit();
  16. 不然之前的操作都不会生效,这一点非常重要。然后如果判断发送错误,就立马让事务回滚,回滚的代码就是:
  17. DB::rollBack();
  18. 完成以上操作我们便可以对事务进行回滚了,这样我们便成功对一组数据操作进行事务操作了,在执行体中根据大家的不用需求 放不同的数据库操作。
  19. 以上就是我为大家讲解的如何利用laravel中的DB门面的transaction方法进行数据库的事务控制。
  20. 更多文章请关注微信公众号

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0haWDE5OTQxMDE4_size_16_color_FFFFFF_t_70

发表评论

表情:
评论列表 (有 0 条评论,311人围观)

还没有评论,来说两句吧...

相关阅读

    相关 MySQL事务控制与异常处理示例

    在MySQL中,事务是数据库操作的一组,这些操作要么全部成功,要么全部失败回滚。以下是使用MySQL进行事务控制和异常处理的示例: 1. 开始事务(如果当前不是事务中,会开始

    相关 laravel中的事务处理

    你可以用 `DB` 门面的 `transaction` 方法在一个事务里执行一系列操作。如果事务闭包里抛出异常,那么事务就会自动回滚。如果闭包执行成功,那么事务就会自动提交。使

    相关 laravel事务控制处理

           在我们的业务处理中,有时候会遇到多个SQL语句的操作,并且他们是分开执行的,有时候他们是存在互相关联的,比如A表新添了一条记录,B表要对该记录进行关联,如果我们不

    相关 php如何处理mysql事务控制

           博主最近在开发一个项目的时候,由于需要使用mysql事务进行控制,防止业务出错,所以就想到了用mysql事务控制来完成,因为是第一次使用原生的PHP处理mysql