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代码
Mar 08 PHP
非常好用的两个PHP函数 serialize()和unserialize()
Feb 04 PHP
php中大括号作用介绍
Mar 22 PHP
关于查看MSSQL 数据库 用户每个表 占用的空间大小
Jun 21 PHP
php分页代码学习示例分享
Feb 20 PHP
php中unserialize返回false的解决方法
Sep 22 PHP
php一个解析字符串排列数组的方法
May 12 PHP
PHP的Yii框架的基本使用示例
Aug 21 PHP
php发送短信验证码完成注册功能
Nov 24 PHP
3种方法轻松处理php开发中emoji表情的问题
Jul 18 PHP
PHP序列化的四种实现方法与横向对比
Nov 29 PHP
redis+php实现微博(三)微博列表功能详解
Sep 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
修改Zend引擎实现PHP源码加密的原理及实践
2008/04/14 PHP
php若干单维数组遍历方法的比较
2011/09/20 PHP
PHP中数组合并的两种方法及区别介绍
2012/09/14 PHP
使用dump函数,给php加断点测试
2013/06/25 PHP
PHP中设置一个严格30分钟过期Session面试题的4种答案
2014/07/30 PHP
PHP实现网站访问量计数器
2017/10/27 PHP
javascript 一个自定义长度的文本自动换行的函数
2007/08/19 Javascript
基于jquery的DIV随滚动条滚动而滚动的代码
2012/07/20 Javascript
jQuery之ajax删除详解
2014/02/27 Javascript
浅谈JavaScript对象与继承
2016/07/10 Javascript
JS实现获取图片大小和预览的方法完整实例【兼容IE和其它浏览器】
2017/04/24 Javascript
bootstrap栅格系统示例代码分享
2017/05/22 Javascript
原生JS写Ajax的请求函数功能
2017/12/22 Javascript
微信公众号平台接口开发 获取微信服务器IP地址方法解析
2019/08/14 Javascript
使用uni-app开发微信小程序的实现
2019/12/13 Javascript
vue 使用原生组件上传图片的实例
2020/09/08 Javascript
[01:53]DOTA2超级联赛专访Zhou 五年职业青春成长
2013/05/29 DOTA
[10:18]2018DOTA2国际邀请赛寻真——Fnatic能否笑到最后?
2018/08/14 DOTA
Python操作Word批量生成文章的方法
2015/07/28 Python
Python 经典面试题 21 道【不可错过】
2018/09/21 Python
新手入门Python编程的8个实用建议
2019/07/12 Python
Python获取当前脚本文件夹(Script)的绝对路径方法代码
2019/08/27 Python
python mysql 字段与关键字冲突的解决方式
2020/03/02 Python
使用jupyter Nodebook查看函数或方法的参数以及使用情况
2020/04/14 Python
Python通过kerberos安全认证操作kafka方式
2020/06/06 Python
Python爬虫获取op.gg英雄联盟英雄对位胜率的源码
2021/01/29 Python
纯CSS3实现表单验证效果(非常不错)
2017/01/18 HTML / CSS
详解css3 object-fit属性
2018/07/27 HTML / CSS
一些Unix笔试题和面试题
2012/09/25 面试题
岗位职责的构建方法
2014/02/01 职场文书
消防安全员岗位职责
2014/03/10 职场文书
大学竞选班长演讲稿
2014/04/24 职场文书
责任书格式范文
2014/07/28 职场文书
专业见习报告范文
2014/11/03 职场文书
2015年六年级班主任工作总结
2015/10/15 职场文书
诺贝尔奖获得者名言100句:句句启人心智,值永久收藏
2019/08/09 职场文书