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 相关文章推荐
Uchome1.2 1.5 代码学习 common.php
Apr 24 PHP
php表单提交问题的解决方法
Apr 12 PHP
PHP 计算代码执行耗时的代码修正网上普遍错误
May 14 PHP
处理单名多值表单的详解
Jun 08 PHP
php导出csv数据在浏览器中输出提供下载或保存到文件的示例
Apr 24 PHP
php中chdir()函数用法实例
Nov 13 PHP
php中ob_get_length缓冲与获取缓冲长度实例
Nov 20 PHP
详解PHP匿名函数与注意事项
Mar 29 PHP
form自动提交实例讲解
Jul 10 PHP
PHP Pipeline 实现中间件的示例代码
Apr 26 PHP
php+mysql实现的无限分类方法类定义与使用示例
May 27 PHP
详解Laravel服务容器的优势
May 29 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
模仿OSO的论坛(五)
2006/10/09 PHP
PHP字符串 ==比较运算符的副作用
2009/10/21 PHP
PHPnow安装服务[apache_pn]失败的问题的解决方法
2010/09/10 PHP
关于二级目录拖拽排序的实现(源码示例下载)
2013/04/26 PHP
php rmdir使用递归函数删除非空目录实例详解
2016/10/20 PHP
CI框架附属类用法分析
2018/12/26 PHP
图片之间的切换
2006/06/26 Javascript
基于jQuery实现下拉收缩(展开与折叠)特效
2012/12/25 Javascript
Node.js编码规范
2014/07/14 Javascript
js使用DOM设置单选按钮、复选框及下拉菜单的方法
2015/01/20 Javascript
JQuery插入DOM节点的方法
2015/06/11 Javascript
Vue.js自定义指令的用法与实例解析
2017/01/18 Javascript
基于JavaScript实现的快速排序算法分析
2017/04/14 Javascript
基于vue+canvas的excel-like组件实例详解
2017/11/28 Javascript
vue.js中实现登录控制的方法示例
2018/04/23 Javascript
小程序云开发实战小结
2018/10/25 Javascript
JavaScript命名空间模式实例详解
2019/06/20 Javascript
JavaScript实现京东放大镜效果
2019/12/03 Javascript
vue在响应头response中获取自定义headers操作
2020/07/24 Javascript
Openlayers实现扩散的动态点(水纹效果)
2020/08/17 Javascript
python使用7z解压apk包的方法
2015/04/18 Python
Python语言实现获取主机名根据端口杀死进程
2016/03/31 Python
python 拼接文件路径的方法
2018/10/23 Python
python 循环读取txt文档 并转换成csv的方法
2018/10/26 Python
linux环境中没有网络怎么下载python
2019/07/07 Python
基于python实现删除指定文件类型
2020/07/21 Python
详解Django ORM引发的数据库N+1性能问题
2020/10/12 Python
python中uuid模块实例浅析
2020/12/29 Python
美国汽配连锁巨头Pep Boys官网:轮胎更换、汽车维修服务和汽车零部件
2017/01/14 全球购物
园林毕业生自我鉴定范文
2013/12/29 职场文书
演讲比赛获奖感言
2014/02/02 职场文书
幼儿教师研修感言
2014/02/12 职场文书
文明村创建实施方案
2014/03/27 职场文书
五年级下册复习计划
2015/01/19 职场文书
2015年政府采购工作总结
2015/05/21 职场文书
2019暑假学生安全口号
2019/06/27 职场文书