关于laravel学习--事务控制处理

本篇博客将简单的介绍使用laravel中的DB门面的transaction方法进行数据库的事务控制

       在我们的业务处理中,有时候会遇到多个SQL语句的操作,并且他们是分开执行的,有时候他们是存在互相关联的,比如A表新添了一条记录,B表要对该记录进行关联,如果我们不对他们进行事务的控制,将有可能在突发的情况下,只执行成功了第一步操作,而第二步操作不执行,那么将会对数据关联造成影响,并且有时候在执行某个SQL语句产生错误造成死锁,这些都会对程序造成致命性的影响。

       所以有时候对业务进行事务控制就显得非常有必要了,今天我给大家简单介绍如何简单的利用DB门面中transaction方法进行数据库的事务控制。如果其中有一个发送错误,事务里面回滚,并返回错误信息,这样就不会执行之前的操作,保证了数据的有效性,因为事务必须全部成功走完一遍,才会执行,这样可以保证数据之间的关联。而且如果某个环节发送错误,他也可以抛出异常,不会对程序造成影响,下面我为大家简单介绍如何使用。

       首页在我们的业务层中必须先引用DB,代码如下:

use Illuminate\Support\Facades\DB;

       然后在我们的方法中先放入事务结构,代码如下:

DB::beginTransaction();
try {

   DB::commit();
   return 'ok';
} catch (\Exception $e) {
   DB::rollBack();
   return 'error';
}

以上就是事务主体结构了,在try{}中我们放入我们的主要数据操作,在catch{}中主要是放我们的异常处理方法,熟悉PHP的朋友也应该会了解,我就不在这里给大家说明了。然后呢,这里有一点很重要就是,在处理完成后必须写上:

 DB::commit();

不然之前的操作都不会生效,这一点非常重要。然后如果判断发送错误,就立马让事务回滚,回滚的代码就是:

DB::rollBack();

完成以上操作我们便可以对事务进行回滚了,这样我们便成功对一组数据操作进行事务操作了,在执行体中根据大家的不用需求放不同的数据库操作。

      以上就是我为大家讲解的如何利用laravel中的DB门面的transaction方法进行数据库的事务控制。

0条评论

发表评论