PHP开发框架Laravel数据库操作方法总结


Posted in PHP onSeptember 03, 2014

一、读/写连接

有时您可能希望使用一个SELECT语句的数据库连接,,另一个用于插入、更新和删除语句。Laravel使这微风,将始终使用正确的连接是否使用原始查询,查询生成器或雄辩的ORM。

如何读/写连接应该配置,让我们看看这个例子:

'mysql' => array('read' => array('host' => '192.168.1.1'),'write' => array('host' => '196.168.1.2'),'driver' => 'mysql','database' =>'database','username' => 'root','password' => '','charset' => 'utf8','collation' => 'utf8_unicode_ci','prefix' => '')

注意,两个键添加到配置阵列:读和写。这两个键有数组值包含一个关键:主机。其余的读写数据库选项从主mysql连接将合并后的数组。所以,我们只需要将物品放入读取和写入数组如果我们希望覆盖主要数组中的值。所以,在这种情况下,192.168.1.1将被用作“读”连接,while192.168.1.2将被用作“写”连接。数据库凭证、前缀、字符集和所有其他选项在主mysql数组将跨两个共享连接。

二、运行查询

一旦你已经配置了数据库连接,你可以使用DB运行查询类。

运行一个Select查询

$results = DB::select('select * from users where id = ?', array(1));

结果的选择方法总是返回一个数组。

运行一个Insert语句

DB::insert('insert into users (id, name) values (?, ?)', array(1, 'Dayle'));

运行一个更新语句

DB::update('update users set votes = 100 where name = ?', array('John'));

运行一个Delete语句
DB::delete('delete from users');

注意:update和delete语句返回的行数的影响操作。

运行一个通用声明

DB::statement('drop table users');

查询事件监听

你可以查询事件监听使用DB::听方法:

DB::listen(function($sql, $bindings, $time){ //});

三、数据库事务

运行在一个数据库事务的一组操作,您可以使用事务方法:

 DB::transaction(function(){ DB::table('users')->update(array('votes' 

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

注意:在事务抛出的任何异常关闭将导致自动事务将回滚

有时你可能需要开始一个事务:

DB::beginTransaction();

你可以通过回滚事务回滚方法:
DB::rollback();

最后,您可以通过提交方法:提交一个事务
DB::commit();

四、访问连接

当使用多个连接,你可以访问它们通过DB::连接方法:

$users = DB::connection('foo')->select(...);

你也可以访问原始的、潜在的PDO实例:
$pdo = DB::connection()->getPdo();

有时你可能需要重新连接到一个给定的数据库:
DB::reconnect('foo');

如果你需要断开从给定的数据库将超过底层PDO实例'smax_connections限制,使用断开连接方法:
DB::disconnect('foo');

五、查询日志

默认情况下,Laravel日志保存在内存的所有查询运行当前的请求。然而,在某些情况下,例如当插入的行数,这可能会导致应用程序使用多余的内存。禁用日志,你可以使用disableQueryLog方法:

DB::connection()->disableQueryLog();

o得到一组执行的查询,您可以使用getQueryLog方法:
$queries = DB::getQueryLog();
PHP 相关文章推荐
php 用checkbox一次性删除多条记录的方法
Feb 23 PHP
php方法调用模式与函数调用模式简例
Sep 20 PHP
php引用地址改变变量值的问题
Mar 23 PHP
浅析使用Turck-mmcache编译来加速、优化PHP代码
Jun 20 PHP
php的sprintf函数的用法 控制浮点数格式
Feb 14 PHP
php数组中删除元素之重新索引的方法
Sep 16 PHP
PHP依赖倒置(Dependency Injection)代码实例
Oct 11 PHP
PHP实现图片不变型裁剪及图片按比例裁剪的方法
Jan 14 PHP
PHP中in_array的隐式转换的解决方法
Mar 06 PHP
PHP检查URL包含特定字符串实例方法
Feb 11 PHP
PHP基于session.upload_progress 实现文件上传进度显示功能详解
Aug 09 PHP
PHP中国际化的字符串排序和比较对象详解
Aug 23 PHP
Fedora下安装php Redis扩展笔记
Sep 03 #PHP
使用YUI+Ant 实现JS CSS压缩
Sep 02 #PHP
在Ubuntu 14.04上部署 PHP 环境及 WordPress
Sep 02 #PHP
PHP高级编程实例:编写守护进程
Sep 02 #PHP
php输入流php://input使用浅析
Sep 02 #PHP
php获取URL中带#号等特殊符号参数的解决方法
Sep 02 #PHP
PHP中提问频率最高的11个面试题和答案
Sep 02 #PHP
You might like
基于mysql的论坛(7)
2006/10/09 PHP
PHP添加MySQL数据记录代码
2008/06/07 PHP
PHP XML数据解析代码
2010/05/26 PHP
基于PHP实现发微博动态代码实例
2020/12/11 PHP
Mootools 1.2教程 排序类和方法简介
2009/09/15 Javascript
JavaScript设计模式之工厂模式和构造器模式
2015/02/11 Javascript
在JavaScript中操作时间之getYear()方法的使用教程
2015/06/11 Javascript
基于jQuery实现的菜单切换效果
2015/10/16 Javascript
JS如何判断是否为ie浏览器的方法(包括IE10、IE11在内)
2015/12/13 Javascript
使用Angular缓存父页面数据的方法
2017/01/03 Javascript
js实现背景图自适应窗口大小
2017/01/10 Javascript
javascript DOM的详解及实例代码
2017/03/06 Javascript
Iscrool下拉刷新功能实现方法(推荐)
2017/06/26 Javascript
bootstrap精简教程_动力节点Java学院整理
2017/07/14 Javascript
vue+koa2实现session、token登陆状态验证的示例
2019/08/30 Javascript
Nuxt.js实现一个SSR的前端博客的示例代码
2019/09/06 Javascript
简单了解JavaScript arguement原理及作用
2020/05/28 Javascript
[49:28]VP vs Optic 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
[41:17]VG vs Optic 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
Python编程中装饰器的使用示例解析
2016/06/20 Python
python+requests+unittest API接口测试实例(详解)
2017/06/10 Python
python 文件转成16进制数组的实例
2018/07/09 Python
Python图像处理之图像的读取、显示与保存操作【测试可用】
2019/01/04 Python
python文件操作的简单方法总结
2019/11/07 Python
tensorflow实现测试时读取任意指定的check point的网络参数
2020/01/21 Python
tensorflow指定GPU与动态分配GPU memory设置
2020/02/03 Python
python如何查看安装了的模块
2020/06/23 Python
Python 实现一个计时器
2020/07/28 Python
Sneaker Studio罗马尼亚网站:购买运动鞋
2018/11/04 全球购物
党校学习思想汇报
2014/01/06 职场文书
技术合作协议书范本
2014/04/18 职场文书
党的群众路线教育实践活动个人对照检查材料
2014/09/22 职场文书
群众路线教育实践活动调研报告
2014/11/03 职场文书
保卫工作个人总结
2015/03/03 职场文书
中国式结婚:司仪主持词(范文)
2019/07/25 职场文书
十大最强水系宝可梦,最美宝可梦排第三,榜首大家最熟悉
2022/03/18 日漫