laravel数据库相关操作

SQL查询

配置好数据库连接后,可以使用 DB facade 运行查询。DB facade 为每种类型的查询提供了方法:select、update、insert、delete 和 statement。

select查询数据

1
2
3
4
5
6
7
8
9
10
11
12
13
14
use Illuminate\Support\Facades\DB;

//select方法一
$users = DB::select('select * from users where active = ?', [1]);

//(1)传递到 select 方法的第一个参数是一个原生的 SQL 查询,而第二个参数则是传递需要绑定到查询中的参数值。通常,这些是 where 子句约束的值。参数绑定提供了对防止 SQL 注入的保护。
//(2)select 方法将始终返回一个数组。数组中的每个结果都是一个PHP StdClass 对象,可以像下面这样访问结果的值:

foreach ($users as $user) {
echo $user->name;
}

//select方法二
$results = DB::select('select * from users where id = :id', ['id' => 1]);

增删改方法

1
2
3
4
5
6
7
8
9
10
11
12
use Illuminate\Support\Facades\DB;

//可以在 DB facade 上使用 insert 方法来执行 insert 语句。与 select 一样
//该方法将原生 SQL 查询作为其第一个参数,并将其绑定的数据作为第二个参数:
DB::insert('insert into users (id, name) values (?, ?)', [1, 'Dayle']);

//update 方法用于更新数据库中的现有记录。该方法会返回受该语句影响的行数:
$affected = DB::update('update users set votes = 100 where name = ?', ['John']);


//delete 方法用于删除数据库中记录。与 update 一样,会返回受该语句影响的行数:
$deleted = DB::delete('delete from users');

laravel数据库事务

可以在 DB facade 上使用 transaction 方法来运行数据库事务中的一组操作。如果在事务 Closure 中发生了异常,事务将自动回滚。而如果 Closure 成功执行,事务将自动被提交。也就是说,使用数据库事务,你就不需要在数据库语句执行发生异常时手动回滚或提交。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
// (1)如果在事务 Closure 中发生了异常,事务将自动回滚,否则事务自动提交
DB::transaction(function () {
DB::table('users')->update(['votes' => 1]);

DB::table('posts')->delete();
});

// (2)处理死锁,第二个参数定义在发生死锁时应该重新尝试事务的次数。一旦尝试次数都用尽了,就会抛出一个异常:
DB::transaction(function () {
DB::table('users')->update(['votes' => 1]);

DB::table('posts')->delete();
}, 5);

// (3)手动开始一个事务,并且能够完全控制回滚和提交
DB::beginTransaction();

//可以通过 rollBack 方法回滚事务:
DB::rollBack();

//最后记得要通过 commit 方法提交事务:
DB::commit();

注意:DB facade 的事务方法也适用于 查询语句构造器 和 Eloquent ORM 的事务。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/242192.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Laravel 的 Eloquent ORM学习

创建模型首先,创建一个 Eloquent 模型,生成的模型通常放在 app 目录中,但你可以通过 composer.json 随意地将它们放在可被自动加载的地方。所有的 Eloquent 模型都继承了 Illuminate\Database\Eloquent\Model 类。 示例: 12345678…

最后半天时间,支付宝等第三方支付机构备付金必须100%上交

这几天支付宝、微信等第三支付机构备付金100%上交央行的新闻相信大家已经看到很多,对于备付金可能大家都不是很了解,甚至很多人认为这是不是银行又跟支付宝等第三方支付机构过意不去了,今天我们就带大家来了解下事情的经过以及真相。央行铁令…

在WinAVR中设置Makefile自动编译多个源文件

初次使用WinAVR,了解到需要通过Makefile文件来设定程序编译时的一些值,发现当一个工程中加入多个源文件时不能同时编译,网上查了一下,需要修改Makefile文件: # List C source files here. (C dependencies are automat…

顺丰负债300亿就压力山大,而万达曾经负债4000亿却稳如泰山

近段顺丰负债300亿的消息闹得沸沸扬扬,作为国内快递一哥,顺丰借壳上市后市值曾经超过3000亿人民币,然而目前却负债300亿,这对于一家轻资产的快递公司来说可不得了。顺丰目前的处境难免让人联想到2017年的时候万达负债4000个亿的情…

2019年各大银行最新存款利率,这么存可以获得更多的利息!

2019年怎么存款才能获得最高的利率?这个相信口袋里有点钱的人都会关心的问题,今天我们就来跟大家仔细说一下。先来看一下2019年各大银行最新存款利率是多少。目前各大银行的存款利率跟2018年年底其实没有多大的差别,虽然已经过了2018年12月份…

怎样学习MSP430单片机

MSP430是Texas Instrument(TI,德州仪器)推出的一款超低功耗单片机。TI是一个非常有实力的、全球领先的芯片制造公司,MSP430不仅因为其优秀的设计,更因为TI提供的强有力的技术支持,而很快成为今天市场上非常受欢迎的一款单片机。 使…

【原创】“三次握手,四次挥手”你真的懂吗?

记得刚毕业找工作面试的时候,经常会被问到:你知道“3次握手,4次挥手”吗?这时候我会“胸有成竹”地“背诵”前期准备好的“答案”,第一次怎么怎么,第二次……答完就没有下文了,面试官貌似也没有…

17年前存款11万,取款时银行以销户为由拒绝,法院判银行全额赔付

1999年年底,陈伯在某银行的存折中存入2.6万元,加上这一笔,当时存折里总共有116703元,之后存折遗失。2016年,陈伯在搬家时找到这个存折。从2017年开始,陈伯多次拿着存折到银行取款,均被银行告知账…

VS2010 + OpenCV 2.4.1 环境配置

VS2010 OpenCV 2.4.1 环境配置 (Windows 7 x64 中文旗舰版;Visual Studio 2010 中文旗舰版;OpenCV2.4.1。) 1.用户环境变量(或系统环境变量),新建或添加 PATH D:\Program Fil…

上市公司降价200万卖房仍然无人接手,有的甚至降价1900万

房价降价200万甩卖房子还卖不出去?看到这估计很多人不相信,因为通过各种数据统计,我们可以看到2018年中国大部分城市的房价都是上涨的,而且部分城市甚至上涨40%以上,但我们普通老百姓看到的却是有些业主降价几十万甚至…

2013电赛总结【西电专用】

电赛全称全国大学生电子设计竞赛,全国赛在每逢单数年的9月份举行,竞赛时间四天三夜。 竞赛流程 政策可能有变,每一届竞赛流程可能都不一样,这里只是根据我的了解进行总结的。 我们学校电赛差不多是从每年年初新学期开学时开始进行…

写一篇新文章

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注…

Matlab与C/C++/Java的一些区别

变量 定义和初始化 C/C中要先定义变量,如果未初始化,其值一般是不确定的 Java中变量使用前,须初始化或赋值(实例化时,类中的全局变量会自动被初始化为默认值) Matlab中变量在写入时不需预先定义&#xff0c…

男子借款70万前后还了1600万仍未还清,如何避免套路贷?

事件回顾:男子借70万陷入套路贷,前后还了1600万。浙江宁波有一侯姓男子,自己是做石材生意的,本来自己一直安安分分做着生意,2013年年底,因为对一个建筑项目投标,急需一大笔钱。他通过中间人向张…

测试下HTML博文

发布测试 <script>window.onload function () {var obj document.getElementById("box");alert("获取#box元素成功");} </script>

一篇故事讲述了计算机网络里的基本概念:网关,DHCP,IP寻址,ARP欺骗,路由,DDOS等

从别处看到的一篇很不错的文章&#xff0c;形象地阐释了网络里的抽象概念。 计算机主机网关的作用是什么? 假设你的名字叫小不点&#xff0c;你住在一个大院子里&#xff0c;你的邻居有很多小伙伴&#xff0c;在门口传达室还有个看大门的李大爷&#xff0c;李大爷就是你的网关…

Photoshop图层学习总结

移动工具选择图层 方式1&#xff1a;按Ctrl键并单击画布相应位置&#xff0c;选择相应图层 方式2&#xff1a;勾选“自动选择” 图层蒙版 图层蒙版中白色部分&#xff0c;对应图层位置会显示&#xff1b;黑色部分&#xff0c;对应图层不显示(即为透明) 1、可在图层面板创建 2、…

Photoshop常用快捷键

常规CtrlA/X/C/V全选/剪切/复制/粘贴CtrlN新建文件CtrlShiftN新建图层CtrlS保存CtrlShiftS保存为选择CtrlD 取消选择Shift添加到选区Alt 从选区减去 ShiftAlt 与选区交叉Ctrl移动选区变形Shift保持长宽比Alt 中心对称 Ctrl扭曲变形缩放滚动Alt鼠标滚轮 缩放Ctrl鼠标滚轮左右滚动…