博主信息
陈文鹏的博客
博文
20
粉丝
0
评论
0
访问量
19076
积分:0
P豆:126

laravel中的事务的使用方式

2017年12月27日 14:29:07阅读数:2080博客 / 陈文鹏的博客/ Laravel文章

<?php 



    public function audit($id)

{

$ttip=DB::table('ttip')->where('id',$id)->first();

$username=$ttip->username;

$user=DB::table('user')->where('username',$username)->first();

$alreleased=$user->alreleased;//更新user表中的数据

$ttBumber=$ttip->ttBumber;//ttip表中的数量

$carryout=$user->carryout;//更新user表中的数据


if($alreleased<$ttBumber)

{

$message="交易失败";

return redirect('/admin')->with('message',$message);

}



DB::beginTransaction(); //开启事物

//扑捉异常

try {

$res=Db::table('ttip')->where("id",$id)->update(["status"=>1]);

$nums=Db::table('user')->where("username",$username)->decrement('subscriptotal',$ttBumber);//递减

$num=Db::table('user')->where("username",$username)->decrement('alreleased',$ttBumber); //递减

$takeaway=DB::table('user')->where('username',$username)->increment('carryout',$ttBumber);//递增

if($res==true && $num==true && $takeaway==true && $nums==true){

DB::commit();//提交保存

$message="交易成功";

return redirect('/admin')->with('message',$message);



}else{

DB::rollBack();

}


} catch (Exception $e) {

// 数据回滚, 当try中的语句抛出异常。

DB::rollBack();


}



}

 ?>


版权申明:本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!

全部评论

文明上网理性发言,请遵守新闻评论服务协议

条评论
  • ​下面由laravel教程栏目给大家介绍Laravelwhere高级使法 ,希望对需要朋友有所帮助!
    对于MySQLi来说,和预处理语句当然是它之所以能够淘汰MySQL扩展资本。我们之前也已经学习过了PDO关于和预处理语句相关内容。
    yii框架:本文总结了三种yii视图使widget,希望能够帮助到大家。
    laravel,路由是外界访问Laravel程序通路,或者说路由定义了Laravel程序向外界提供服具体
    上篇文章给大家介绍了《PHP我们如何自定义匹配手机号正则表达?(附代码)》,本文继续给大家介绍如何使正则替换实现清除字符串所有HTML标签?(详细介绍)
    ​下面由Laravel教程栏目给大家总结Laravel件系统法(监听件,观察者模) ,希望对需要朋友有所帮助!
    关于问题,我们就不多解释了,以后在学习 MySQL 相关内容时再深入了解。今天我们主要是对 PDO 操作一些小测试,或许能发现一些比较好玩内容。
    下面由Laravel教程​栏目给大家介绍使laravel调度(定时执行任),希望对需要朋友有所帮助!
    mysql数据表手动回滚点,主要通过savepoint语句来实现设置回滚点。
    本篇文章带大家了解一下MySQL隔离,介绍一下特性、隔离级别、启动等,希望对大家有所帮助!
    在SQL语言,实现提交语句是COMMIT,REVOKE是废除某户或某组或所有访问权限,在操作完时,一定要使COMMIT语句提交,否则,操作会失败。
    下面由Laravel教程栏目带大家了解一下Laravel管道,分享一个Laravel管道使实例,希望对大家有所帮助!
    区别:1、渲染模版不同,Laravel“return view()”,tp“$this->display()”。2、防跨站攻击不同。
    数据库并发操作可能带来丢失更新、不一致分析和“脏数据”读出问题。是并发控制基本单位。
    本文将向您介绍如何使件发射器在vue.js将数据及其状态从子组件传递到其父组件。这篇文章适合所有阶段开发人员,包括初学者。
    ​下面由Laravel教程栏目给大家介绍使宝塔计划任启动laravel调度器法,希望对需要朋友有所帮助!
    mvc设计模是通过JSP技术来表现页面,通过Servlet技术来完成大量处理工作,实现商业逻辑,在这种模,Servlet来处理请求,充当了控制器角色。
    是SQL较为常见使操作,PHP也需要连接数据库,所以需要兼容SQL一些操作,在PDO连接,PHP提供commit()函数使,本文就带大家一起来看一看。
    数据库优化:1、选取最适字段属性;2、使连接来代替子查询;3、使联合来代替手动创建临时表;4、;5、锁定表;6、使外键。
    件溯源是领域驱动设计设计思想架构模之一。领域驱动设计是面向业一种建模。它帮助开发者建立更贴近业模型。今天我们就来聊聊php件溯源。