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程序中防止盗链
Apr 09 PHP
php中$_REQUEST、$_POST、$_GET的区别和联系小结
Nov 23 PHP
如何使用Strace调试工具
Jun 03 PHP
解析PHP留言本模块主要功能的函数说明(代码可实现)
Jun 25 PHP
thinkphp视图模型查询提示ERR: 1146:Table 'db.pr_order_view' doesn't exist的解决方法
Oct 30 PHP
php计算函数执行时间的方法
Mar 20 PHP
你不知道的文件上传漏洞php代码分析
Sep 29 PHP
PHP 获取指定地区的天气实例代码
Feb 08 PHP
yii2.0整合阿里云oss删除单个文件的方法
Sep 19 PHP
php递归函数怎么用才有效
Feb 24 PHP
ThinkPHP3.2框架自带分页功能实现方法示例
May 13 PHP
php多进程并发编程防止出现僵尸进程的方法分析
Feb 28 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
关于JSON以及JSON在PHP中的应用技巧
2013/11/27 PHP
WordPress中用于获取及自定义头像图片的PHP脚本详解
2015/12/17 PHP
CodeIgniter自定义控制器MY_Controller用法分析
2016/01/20 PHP
JS(jQuery)实现聊天接收到消息语言自动提醒功能详解【提示“您有新的消息请注意查收”】
2019/04/16 PHP
WordPress伪静态规则设置代码实例
2020/12/10 PHP
让div层随鼠标移动的实现代码 ie ff
2009/12/18 Javascript
某人初学javascript的时候写的学习笔记
2010/12/30 Javascript
轻松创建nodejs服务器(2):nodejs服务器的构成分析
2014/12/18 NodeJs
JavaScript实现多个重叠层点击切换效果的方法
2015/04/24 Javascript
AngularJs解决跨域问题案例详解(简单方法)
2016/05/19 Javascript
jQuery Mobile和HTML5开发App推广注册页
2016/11/07 Javascript
jquery实现图片平滑滚动详解
2017/03/22 jQuery
Nodejs 和Session 原理及实战技巧小结
2017/08/25 NodeJs
vue中前进刷新、后退缓存用户浏览数据和浏览位置的实例讲解
2018/09/21 Javascript
vue里的data要用return返回的原因浅析
2019/05/28 Javascript
2分钟实现一个Vue实时直播系统的示例代码
2020/06/05 Javascript
nodejs中内置模块fs,path常见的用法说明
2020/11/07 NodeJs
Python处理json字符串转化为字典的简单实现
2016/07/07 Python
python自动化报告的输出用例详解
2018/05/30 Python
Python中的取模运算方法
2018/11/10 Python
Python代码使用 Pyftpdlib实现FTP服务器功能
2019/07/22 Python
np.newaxis 实现为 numpy.ndarray(多维数组)增加一个轴
2019/11/30 Python
Python实现将蓝底照片转化为白底照片功能完整实例
2019/12/13 Python
浅析关于Keras的安装(pycharm)和初步理解
2020/10/23 Python
HTML5如何使用SVG的方法示例
2019/01/11 HTML / CSS
加拿大约会网站:EliteSingles.ca
2018/01/12 全球购物
澳大利亚拥有最好的家具和家居用品在线目的地:Nestz
2019/02/23 全球购物
纽约州一群才华横溢的金匠制作而成:Hearth Jewelry
2019/03/22 全球购物
高中生期末评语
2014/01/28 职场文书
2014小学植树节活动总结
2014/03/10 职场文书
我爱我校演讲稿
2014/05/21 职场文书
2015最新学生自我评价范文
2015/03/03 职场文书
python中使用 unittest.TestCase单元测试的用例详解
2021/08/30 Python
Mysql binlog日志文件过大的解决
2021/10/05 MySQL
Python中time与datetime模块使用方法详解
2022/03/31 Python
React更新渲染原理深入分析
2022/12/24 Javascript