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 相关文章推荐
ThinkPHP结合ajax、Mysql实现的客户端通信功能代码示例
Jun 23 PHP
php在linux下检测mysql同步状态的方法
Jan 15 PHP
PHP单例模式详细介绍
Jul 01 PHP
php实现图片等比例缩放代码
Jul 23 PHP
win7系统配置php+Apache+mysql环境的方法
Aug 21 PHP
php三种实现多线程类似的方法
Oct 30 PHP
中高级PHP程序员应该掌握哪些技术?
Sep 23 PHP
PHP与JavaScript针对Cookie的读写、交互操作方法详解
Aug 07 PHP
php中通用的excel导出方法实例
Dec 30 PHP
php实现的mongoDB单例模式操作类
Jan 20 PHP
PHP+MariaDB数据库操作基本技巧备忘总结
May 21 PHP
浅析PHP echo 和 print 语句
Jun 30 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
附件名前加网站名
2008/03/23 PHP
php单件模式结合命令链模式使用说明
2008/09/07 PHP
ThinkPHP模板Volist标签嵌套循环输出多维数组的方法
2016/03/23 PHP
PHP自定义错误用法示例
2016/09/28 PHP
PHP 500报错的快速解决方法
2016/12/14 PHP
php分页查询的简单实现代码
2017/03/14 PHP
Extjs在exlipse中设置自动提示的方法
2010/04/07 Javascript
一个关于javascript匿名函数的问题分析
2012/03/30 Javascript
js浏览器本地存储store.js介绍及应用
2014/05/13 Javascript
jQuery构造函数init参数分析续
2015/05/13 Javascript
jQuery根据元素值删除数组元素的方法
2015/06/24 Javascript
表单input项使用label同时引用Bootstrap库导致input点击效果区增大问题
2016/10/11 Javascript
nodejs获取微信小程序带参数二维码实现代码
2017/04/12 NodeJs
深入浅析Vue不同场景下组件间的数据交流
2017/08/15 Javascript
vue系列之requireJs中引入vue-router的方法
2018/07/18 Javascript
微信小程序实现下拉菜单切换效果
2020/03/30 Javascript
ES6 Set结构的应用实例分析
2019/06/26 Javascript
Selenium的使用详解
2018/10/19 Python
python 检查是否为中文字符串的方法
2018/12/28 Python
python导入pandas具体步骤方法
2019/06/23 Python
python实现多进程按序号批量修改文件名的方法示例
2019/12/30 Python
python如何调用字典的key
2020/05/25 Python
Python Scrapy图片爬取原理及代码实例
2020/06/12 Python
scrapy-redis分布式爬虫的搭建过程(理论篇)
2020/09/29 Python
用HTML5的canvas实现一个炫酷时钟效果
2016/05/20 HTML / CSS
Sixt美国租车:高端豪华车型自驾体验
2017/09/02 全球购物
Mountain Warehouse波兰官方网站:英国户外品牌
2019/08/29 全球购物
沙特阿拉伯排名第一的在线时尚购物应用程序:1Zillion
2020/08/08 全球购物
会计应聘求职信范文
2013/12/17 职场文书
毕业生如何写自荐信
2014/03/26 职场文书
经济贸易系毕业生求职信
2014/05/31 职场文书
出国留学单位推荐信
2015/03/26 职场文书
老人与海读书笔记
2015/06/26 职场文书
酒店宣传语大全
2015/07/13 职场文书
2019客服个人年终工作总结范文
2019/07/08 职场文书
Springboot使用Spring Data JPA实现数据库操作
2021/06/30 Java/Android