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速度全攻略
Oct 09 PHP
PHP新手上路(十二)
Oct 09 PHP
php 引用(&)详解
Nov 20 PHP
dedecms系统的广告设置代码 基础版本
Apr 09 PHP
php中将时间差转换为字符串提示的实现代码
Aug 08 PHP
php异常处理使用示例
Feb 25 PHP
php获取汉字拼音首字母的方法
Oct 21 PHP
利用PHP判断文件是否为图片的方法总结
Jan 06 PHP
PHP获取数组中单列值的方法
Jun 10 PHP
CodeIgniter框架数据库基本操作示例
May 24 PHP
php实现数组中出现次数超过一半的数字的统计方法
Oct 14 PHP
PHP使用OB缓存实现静态化功能示例
Mar 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
Laravel 5框架学习之向视图传送数据
2015/04/08 PHP
Javascript 汉字字节判断
2009/08/01 Javascript
jquery 使用点滴函数代码
2011/05/20 Javascript
javascript跨浏览器的属性判断方法
2014/03/16 Javascript
详解JavaScript中的表单验证
2015/06/16 Javascript
Bootstrap前端开发案例二
2016/06/17 Javascript
利用Plupload.js解决大文件上传问题, 带进度条和背景遮罩层
2017/03/15 Javascript
ES6新特性六:promise对象实例详解
2017/04/21 Javascript
Node.js dgram模块实现UDP通信示例代码
2017/09/26 Javascript
Node.js中环境变量process.env的一些事详解
2017/10/26 Javascript
vue.js项目中实用的小技巧汇总
2017/11/29 Javascript
微信小程序左右滑动的实现代码
2017/12/15 Javascript
element-ui上传一张图片后隐藏上传按钮功能
2019/05/22 Javascript
vue集成chart.js的实现方法
2019/08/20 Javascript
解决LayUI加上form.render()下拉框和单选以及复选框不出来的问题
2019/09/27 Javascript
vue调用本地摄像头实现拍照功能
2020/08/14 Javascript
[16:27]DOTA2 HEROS教学视频教你分分钟做大人-艾欧
2014/06/11 DOTA
Python数据分析之双色球统计两个红和蓝球哪组合比例高的方法
2018/02/03 Python
解决pandas使用read_csv()读取文件遇到的问题
2018/06/15 Python
Python http接口自动化测试框架实现方法示例
2018/12/06 Python
BP神经网络原理及Python实现代码
2018/12/18 Python
python多线程共享变量的使用和效率方法
2019/07/16 Python
浅析python 中大括号中括号小括号的区分
2019/07/29 Python
Python倒排索引之查找包含某主题或单词的文件
2019/11/13 Python
Python scrapy爬取小说代码案例详解
2020/07/09 Python
Python基于内置函数type创建新类型
2020/10/22 Python
2013届毕业生求职信范文
2013/11/20 职场文书
廉洁使者实施方案
2014/03/29 职场文书
工地标语大全
2014/06/18 职场文书
自我检讨报告
2015/01/28 职场文书
工商局调档介绍信
2015/10/22 职场文书
信息技术研修心得体会
2016/01/08 职场文书
Python 制作自动化翻译工具
2021/04/25 Python
MySQL数据库必备之条件查询语句
2021/10/15 MySQL
用Python爬取英雄联盟的皮肤详细示例
2021/12/06 Python
电脑只能进入安全模式无法正常启动的解决办法
2022/04/08 数码科技