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 常用函数库和一些实用小技巧
Jan 01 PHP
PHP正确配置mysql(apache环境)
Aug 28 PHP
php适配器模式介绍
Aug 14 PHP
摘自织梦CMS中的图片处理类
Aug 08 PHP
php冒泡排序与快速排序实例详解
Dec 07 PHP
php实现爬取和分析知乎用户数据
Jan 26 PHP
thinkPHP3.1验证码的简单实现方法
Apr 22 PHP
Laravle eloquent 多对多模型关联实例详解
Nov 22 PHP
Docker搭建自己的PHP开发环境
Feb 24 PHP
PHP实现用户异地登录提醒功能的方法【基于thinkPHP框架】
Mar 15 PHP
laravel中短信发送验证码的实现方法
Apr 25 PHP
php通过各种函数判断0和空
Jul 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
vs中通过剪切板循环来循环粘贴不同内容
2011/04/30 PHP
用PHP即时捕捉PHP中的错误并发送email通知的实现代码
2013/01/19 PHP
php根据身份证号码计算年龄的实例代码
2014/01/18 PHP
php使用google地图应用实例
2014/12/31 PHP
PHP+Apache+Mysql环境搭建教程
2016/08/01 PHP
php中的抽象方法和抽象类
2017/02/14 PHP
Laravel关系模型指定条件查询方法
2019/10/10 PHP
jquery select(列表)的操作(取值/赋值)
2009/08/06 Javascript
改变javascript函数内部this指针指向的三种方法
2010/04/23 Javascript
jquery调用wcf并展示出数据的方法
2011/07/07 Javascript
JS二维数组的定义说明
2014/03/03 Javascript
Bootstrap实现默认导航栏效果
2020/09/21 Javascript
three.js快速入门【推荐】
2017/01/21 Javascript
vue filters的使用详解
2018/06/11 Javascript
深入理解 Koa 框架中间件原理
2018/10/18 Javascript
微信小程序-form表单提交代码实例
2019/04/29 Javascript
Vue CLI2升级至Vue CLI3的方法步骤
2019/05/20 Javascript
vue项目中全局引入1个.scss文件的问题解决
2019/08/01 Javascript
JavaScript设计模式之观察者模式与发布订阅模式详解
2020/05/07 Javascript
Vue watch响应数据实现方法解析
2020/07/10 Javascript
Vue Object.defineProperty及ProxyVue实现双向数据绑定
2020/09/02 Javascript
vue.js实现点击图标放大离开时缩小的代码
2021/01/27 Vue.js
详解用Python处理HTML转义字符的5种方式
2017/12/27 Python
python实现指定文件夹下的指定文件移动到指定位置
2018/09/17 Python
Python面向对象程序设计类的封装与继承用法示例
2019/04/12 Python
Keras 在fit_generator训练方式中加入图像random_crop操作
2020/07/03 Python
美国高档百货Nordstrom的折扣店:Nordstrom Rack
2017/11/13 全球购物
.NET方向面试题
2014/11/20 面试题
华三通信H3C面试题
2015/05/15 面试题
中科方德软件测试面试题
2016/04/21 面试题
群众路线组织生活会发言材料
2014/10/17 职场文书
机器人总动员观后感
2015/06/09 职场文书
公司员工奖惩制度
2015/08/04 职场文书
导游词创作书写原则以及开场白技巧怎么学?
2019/09/25 职场文书
适合后台管理系统开发的12个前端框架(小结)
2021/06/29 Javascript
Python编程源码报错解决方法总结经验分享
2021/10/05 Python