laravel mysql 事务_laravel框架中的MySQL事务处理 阿星小栈
在操作数据库中,实现一个功能时有时候会多次操作数据库,在多次操作数据库时,就会有可能出现其中一条sql语句执行成功,而另一条sql语句执行失败。这样的话就会出现很严重的问题,所以可以用MySQL的实物处理来解决这个问题。
laravel中的事物:
假如说:有一个用户表(user)
里面有两个字段,username,password
password字段设置为char(32),固定长度。
现在想要一次性插入两个用户:
通常执行sql语句(就是直接写两句):
$user1 = DB::table('user')->insert(['uname'=>'user1','password'=>'111']);
$user2 = DB::table('user')->insert(['uname'=>'user2','password'=>'222']);
这样一般都执行成功!!!
但是如果在开发业务逻辑时,会出现下面的情况:
$user1 = DB::table('user')->insert(['uname'=>'user1','password'=>'111']);
$user2 = DB::table('user')->insert(['uname'=>'user2','password'=>'22222222222222222222222222222222']);
在第二条sql语句中password字段的长度是33位的长度,这样肯定会报错
如果正常情况不用事物处理的话,肯定是插入的一个用户。
使用事物后应该是:
第一步、开启事务:
DB::beginTransaction();
第二步、执行成功时提交事务,失败时回滚
DB::commit();//成功,提交事务
DB::rollBack();//失败,回滚事务
eg:
DB::beginTransaction();
try {
$user1 = DB::table('user')->insert(['uname'=>'user1','password'=>'111']);
$user2 = DB::table('user')->insert(['uname'=>'user2','password'=>'222222222222222']);
if($user1&&$user2){
DB::commit();
echo 'success';
}
} catch (\Exception $e) {
DB::rollBack();
echo 'error';
}
其中要注意一点的是,catch里面的抛出异常,Exception前面要加上一个‘\’,不然的话在框架里面他会找不到这个类,然后就不会抛出异常。框架就会直接报错,起不到事务的作用。
转自:http://blog.csdn.net/iloveyougirls/article/details/71436558
laravel mysql 事务_laravel框架中的MySQL事务处理 阿星小栈相关推荐
- python框架 mysql数据库_在Python的框架中为MySQL实现restful接口的教程
最近在做游戏服务分层的时候,一直想把mysql的访问独立成一个单独的服务DBGate,原因如下: 请求收拢到DBGate,可以使DBGate变为无状态的,方便横向扩展 当请求量或者存储量变大时,mys ...
- linux中mysql设置大小写敏感,linux中修改mysql表名大小写敏感
在mysql启动参数文件中配置mysql对大小写不敏感. 参数文件位置:/etc/my.cnf 1.用rpm包安装的MySQL是不会安装/etc/my.cnf文件的, 至于为什么没有这个文件而MySQ ...
- abp 使用mysql_在Abp框架中使用Mysql数据库的方法以及相关问题小记
最近发现了一款DDD的框架 看起来不错,据说挺流弊的 刚好最近要弄点小东西,拿来试试也不错 苦于穷逼买不起高配服务器,只好装mysql数据库了 下面说下如何在该框架下使用Mysql数据库 打开项目后, ...
- tp3.1 mysql 事务_tp框架事务处理实例和理解
tp的事务开启是非常简单的, 只需要M()->startTrans();//开启事务,M()可以是M('xxx') $m->rollback();//事务回滚 $m->commit( ...
- thinkphp mysql 预处理_thinkPHP框架中执行原生SQL语句的方法
本文实例讲述了thinkPHP框架中执行原生SQL语句的方法.分享给大家供大家参考,具体如下: 怎样在thinkphp里面执行原生的sql语句? $Model = new Model();//或者 $ ...
- ci mysql 缓存_CodeIgniter框架中启用和清除缓存的教程
CodeIgniter框架启动与缓存问题许多的新手都不知道如何来操作了,下面我们就一起来看一篇关于CodeIgniter框架中启用和清除缓存例子,具体如下所示. Codeigniter支持缓存技术,以 ...
- npm mysql 事务_一文解读MySQL事务
经常提到数据库的事务,那你知道数据库还有事务隔离的说法吗,事务隔离还有隔离级别,那什么是事务隔离,隔离级别又是什么呢?本文就帮大家梳理一下. MySQL 事务 本文所说的 MySQL 事务都是指在 I ...
- mysql 事务回滚_SQL基础丨事务处理
事务的特性:ACID MySQL5.5版本之前,默认的存储引擎是MyISAM,在5.5版本之后默认存储引擎是InnoDB.两者唯一的区别就是InnoDB支持事务. 事务的英文是transaction, ...
- mysql status questions_运行中的mysql状态查看
运行中的mysql状态查看 对正在运行的mysql进行监控,其中一个方式就是查看mysql运行状态. (1)QPS(每秒Query量) QPS = Questions(or Queries) / se ...
- django框架访问mysql数据库_Django框架怎么配置mysql数据库
Django框架怎么配置mysql数据库 发布时间:2020-08-01 10:37:54 来源:亿速云 阅读:67 作者:小猪 这篇文章主要讲解了Django框架怎么配置mysql数据库,内容清晰明 ...
最新文章
- Kubernetes 1.14 版本发布:正式支持Windows 节点,持久化本地卷进入GA
- python 压缩文件 调用7z_Python:如何从Python压缩的7z文件中读取一行?
- js二进制流转Blob对象。Blob对象再转File对象
- Asp.net基础概念之 事件
- 人到了中年在职场中就应该保持内敛的心态
- Visual Studio 2017在编译时出现错误E2512:功能测试宏的参数必须是简单标识符
- 解决IE8下不支持document.getElementsByClassName的方法
- python基础: 选择语句
- 大学计算机基础流媒体,大学计算机基础经典课件.ppt
- 转盘抽奖小程序java_大转盘抽奖小程序版 转盘抽奖网页版
- win10下pyt3.7安装scrapy后cmd运行相关命令SyntaxError: invalid syntax 解决办法
- springboot+vue房屋租赁系统-求租合同系统java
- RxJava 两种生产和消费模式,(冷)cold和(热)hot
- 分享 | 一份小小的信念
- 中国地质大学计算机研究所宿舍,在地大,据说一些寝室闪闪发光
- 学习编程一年需要花费多少?自学可以成为程序员吗?
- MySQL DDL Duplicate entry '12' for key 'PRIMARY'
- 你有新的推送消息,请注意查收
- 数组 (1)一维数组
- 手机控制汽车无钥匙进入一键启动方案设计
热门文章
- 微分几何 Class 2 欧氏空间
- 百度富文本编辑器插入视频链接相关问题
- Python爬虫学习之路——python IED工具介绍(一)
- 《黑白团团队》第九次团队作业:Beta冲刺第二天
- 华为员工工资曝光:入职12年月薪31万!手里的窝窝头突然就不香了.....
- google 手气不错 的代码
- mysql evict_SpringBoot+Mybatis+MySQL实现读写分离
- 0行代码,实现植物大战僵尸脚本
- 关于NN以及BP的一些网络上整理的资料
- 国外创企Emotech获中国投资,助力个性化机器人Olly