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 Class 文章
Apr 04 PHP
php empty函数判断mysql表单是否为空
Apr 12 PHP
php判断输入不超过mysql的varchar字段的长度范围
Jun 24 PHP
PHP入门经历和学习过程分享
Apr 11 PHP
php求数组全排列,元素所有组合的方法总结
Mar 14 PHP
php实现基于PDO的预处理示例
Mar 28 PHP
PHP 中常量的知识整理
Apr 14 PHP
PHP以json或xml格式返回请求数据的方法
May 31 PHP
php的扩展写法总结
May 14 PHP
php 中self,this的区别和操作方法实例分析
Nov 04 PHP
PHP cookie与session会话基本用法实例分析
Nov 18 PHP
PHP实现二维数组(或多维数组)转换成一维数组的常见方法总结
Dec 04 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
Laravel利用gulp如何构建前端资源详解
2018/06/03 PHP
php 将json格式数据转换成数组的方法
2018/08/21 PHP
关于 byval 与 byref 的区别分析总结
2007/10/08 Javascript
jquery实现弹出窗口效果的实例代码
2013/11/28 Javascript
基于dropdown.js实现的两款美观大气的二级导航菜单
2015/09/02 Javascript
基于JS2Image实现圣诞树代码
2015/12/24 Javascript
浅析创建javascript对象的方法
2016/05/13 Javascript
Bootstrap基本插件学习笔记之Alert警告框(20)
2016/12/08 Javascript
scroll事件实现监控滚动条并分页显示(zepto.js)
2016/12/18 Javascript
jQuery拖拽通过八个点改变div大小
2020/11/29 Javascript
基于bootstrap的选择框插件icheck
2016/12/23 Javascript
jQuery.parseHTML() 函数详解
2017/01/09 Javascript
原生JS实现自定义滚动条效果
2020/10/27 Javascript
Js中async/await的执行顺序详解
2017/09/22 Javascript
详解vue中使用微信jssdk
2019/04/19 Javascript
vue移动端模态框(可传参)的实现
2019/11/20 Javascript
python 性能优化方法小结
2017/03/31 Python
python算法表示概念扫盲教程
2017/04/13 Python
利用Python如何实现一个小说网站雏形
2018/11/23 Python
python 处理telnet返回的More,以及get想要的那个参数方法
2019/02/14 Python
用Python中的turtle模块画图两只小羊方法
2019/04/09 Python
python爬虫 基于requests模块发起ajax的get请求实现解析
2019/08/20 Python
Python实现元素等待代码实例
2019/11/11 Python
Python for循环通过序列索引迭代过程解析
2020/02/07 Python
FLIR美国官网:热成像, 夜视和红外摄像系统
2018/07/13 全球购物
思想汇报范文
2013/11/04 职场文书
建筑工程专业大学生求职信
2014/04/23 职场文书
入职担保书范文
2014/05/21 职场文书
十佳少先队员演讲稿
2014/09/12 职场文书
关于群众路线的心得体会
2014/11/05 职场文书
元旦晚会开场白
2015/05/29 职场文书
军训通讯稿范文
2015/07/18 职场文书
神州牡丹园的导游词
2019/11/20 职场文书
pycharm 如何查看某一函数源码的快捷键
2021/05/12 Python
Python实现DBSCAN聚类算法并样例测试
2021/06/22 Python
vue+iview实现手机号分段输入框
2022/03/25 Vue.js