laravel database的事务函数

laravel的事务使用如下:

DB::connection(‘gvideo‘)->transaction(function () use ($user_id, $video_id, $action_id) {
                $this->create(array(‘user_id‘ => $user_id, ‘video_id‘ => $video_id, ‘action_id‘ => $action_id));

                if (UserTotalActionRecord::where(‘user_id‘, $user_id)->where(‘action_id‘, $action_id)->where(‘record_date‘, date("Y-m-d"))->first()) {
                    UserTotalActionRecord::where(‘user_id‘, $user_id)->where(‘action_id‘, $action_id)->where(‘record_date‘, date("Y-m-d"))->increment(‘action_times‘);
                } else {
                    UserTotalActionRecord::create(array(‘user_id‘ => $user_id, ‘action_id‘ => $action_id, ‘record_date‘ => date("Y-m-d")));
                }
            });

之前使用时发现匿名函数没用 use 来引用外部变量,使得在函数体内使用时会出错,因此需注重匿名函数的使用。

时间: 2024-10-19 10:28:34

laravel database的事务函数的相关文章

数据库 --- 40 视图 触发器 存储过程 事务 函数

一.视图  (view) 视图是一种虚拟表,可以把查询出来的临时表保存下来 1.创建视图 2.删除视图 3.修改视图,(原始表的记录也跟着修改) 4.查看视图 二.  触发器(trigger)可进行  增删改  操作 1.创建触发器 2.删除触发器 实例: 三.存储过程  1. 优点: 缺点: 2.程序与数据库结合使用的三种方式 3.创建简单存储过程(无参) 4.创建存储过程(有参) ① in  传入参数 ② out  返回值 #查看存储过程的一些信息:show create procedure

视图 触发器 事务 函数 存储过程

1.视图 视图是一个虚拟表(非真实存在).使用视图我们可以把查询过程中的临时表摘出来,用视图去实现. 视图有明显的效率问题,而且使用视图会过分依赖视图,强耦合,这样意味着扩展sql极为不便,因此不推荐使用 创建视图,使用视图 DROP VIEW teacher_view 删除视图 DROP VIEW teacher_view 2.使用触发器可以定制用户对某张表进行增删改操作前后的行为,注意:没有查询 delimiter // create trigger t1 BEFORE INSERT on

JDBC中DAO事务函数模版

DAO事物函数模版 public void OrderFinsByPage(){ Connection conn = null; PreparedStatement pstmt = null; ResultSet rs = null; try { conn = DBUtils.getConnection(); //事务开始 conn.setAutoCommit(false); //业务逻辑 conn.commit(); } catch (Exception e) { try { conn.rol

laravel DB 执行 mysql函数或者字段

使用laravel框架中的DB查询mysql数据库的时候,综合遇到执行mysql函数或者,自定义字段,一般情况下DB会把传入的函数当做字段处理 方法如下: DB:raw('函数或者字段'); 例子:DB::raw('rand()').DB::raw('date()')

Laravel之路(事务)mysql事务

其实关于mysql的事务(原声mysql语句),我在我的博客里面有提到(mysql的文章分类下) 今天看下基于laravel框架ORM的处理 准备: 表必须是InnoDB引擎 DB::beginTransaction(); try{ $name = 'abc'; $result1 = Test::create(['name'=>$name]); if (!$result1) { /** * Exception类接收的参数 * $message = "", $code = 0, E

laravel database opearate1

//get whole table data // $users = DB::table('users')->get(); // var_dump($users); // select data of 'id=1'; // $me = DB::table('users')->where('id',1)->first(); // echo $me->name; // out one filed // $email = DB::table('users')->where('id'

【DataBase】事务

一.事务概述 二.事务的四大特性(ACID) 三.事务的隔离性导致的问题 四.数据库的四个隔离级别 五.数据库中的锁机制: 六.更新丢失 七.并发事务所带来的的问题 一.事务概述 事务的概念:事务是指逻辑上的一组操作,这组操作要么同时完成要么同时不完成. 假如小明要给小红转账1000元,这个转账会涉及到两个关键操作就是:将小明的余额减少1000元,将小红的余额增加1000元.万一在这两个操作之间突然出现错误比如银行系统崩溃,导致小明余额减少而小红的余额没有增加,这样就不对了.事务就是保证这两个关

MySQL-视图-触发器-事务-存储过程-函数-流程控制-索引与慢查询优化-06

目录 视图*** 什么是视图 为什么要用视图 如何生成视图 修改视图 --> 最好(千万)不要 关联表数据改动前 关联表数据改动之后 触发器 什么是触发器 触发条件 触发器语法结构 修改mysql的默认结束符(;) 触发器死循环 六个触发器的执行时机 新增前.新增后.删除前.删除后.更新前.更新后 NEW对象指代的就是当前记录(对象) 事务 ***** 什么是事务 事务的四大特性 ACID A:原子性 atomicity C:一致性 consistency I:隔离性 isolation D:持

laravel 自定义全局函数

laravel 内置全局函数在 illuminate/supports/helpers.php 自己定义全局函数 方法一 "files": [ "app/Helpers/helpers.php" ] 然后执行: composer dump-auto 方法二 bootstrap/autoload.php 中添加 require __DIR__.'/../app/Helpers/helpers.php';