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 相关文章推荐
用libtemplate实现静态网页生成
Oct 09 PHP
用PHP连接Oracle数据库
Oct 09 PHP
ajax实现无刷新分页(php)
Jul 18 PHP
新浪SAE云平台下使用codeigniter的数据库配置
Jun 12 PHP
linux下安装php的memcached客户端
Aug 03 PHP
PHPUnit安装及使用示例
Oct 29 PHP
Laravel中扩展Memcached缓存驱动实现使用阿里云OCS缓存
Feb 10 PHP
php采集神器cURL使用方法详解
Feb 19 PHP
老生常谈PHP数组函数array_merge(必看篇)
May 25 PHP
Laravel 创建指定表 migrate的例子
Oct 09 PHP
php 使用 __call实现重载功能示例
Nov 18 PHP
PhpStorm的使用教程(本地运行PHP+远程开发+快捷键)
Mar 26 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
cache_lite试用
2007/02/14 PHP
php使用$_POST或$_SESSION[]向js函数传参
2014/09/16 PHP
PHP基于DateTime类解决Unix时间戳与日期互转问题【针对1970年前及2038年后时间戳】
2018/06/13 PHP
对象的类型:本地对象(1)
2006/12/29 Javascript
Javascript表达式中连续的 && 和 || 之赋值区别
2010/10/17 Javascript
基于IE下ul li 互相嵌套时的bug,排查,解决过程以及心得介绍
2013/05/07 Javascript
jquery中的ajax方法怎样通过JSONP进行远程调用
2014/05/04 Javascript
javascript常见用法总结
2014/05/22 Javascript
jquery使用$(element).is()来判断获取的tagName
2014/08/24 Javascript
jQuery插件EnPlaceholder实现输入框提示文字
2015/06/05 Javascript
JQuery中DOM实现事件移除的方法
2015/06/13 Javascript
jQuery通过deferred对象管理ajax异步
2016/05/20 Javascript
微信小程序 条件渲染详解
2016/10/09 Javascript
Vue.js框架路由使用方法实例详解
2017/08/25 Javascript
bootstrap treeview 树形菜单带复选框及级联选择功能
2018/06/08 Javascript
微信小程序合法域名配置方法
2019/05/06 Javascript
JS实现小米轮播图
2020/09/21 Javascript
详解如何在vue+element-ui的项目中封装dialog组件
2020/12/11 Vue.js
win与linux系统中python requests 安装
2016/12/04 Python
Python tkinter模块弹出窗口及传值回到主窗口操作详解
2017/07/28 Python
[机器视觉]使用python自动识别验证码详解
2019/05/16 Python
对pyqt5多线程正确的开启姿势详解
2019/06/14 Python
python实现七段数码管和倒计时效果
2019/11/23 Python
Pandas-Cookbook 时间戳处理方式
2019/12/07 Python
Python socket聊天脚本代码实例
2020/01/02 Python
python简单实现最大似然估计&scipy库的使用详解
2020/04/15 Python
Django celery异步任务实现代码示例
2020/11/26 Python
CSS3实现多样的边框效果
2018/05/04 HTML / CSS
Nili Lotan官网:Nili Lotan同名品牌
2018/01/07 全球购物
澳大利亚购买最佳炊具品牌网站:Cookware Brands
2019/02/16 全球购物
介绍java中初始化块的使用
2012/09/11 面试题
法律专业推荐信范文
2013/11/29 职场文书
寄语十八大感言
2014/02/07 职场文书
小英雄雨来观后感
2015/06/09 职场文书
Go Plugins插件的实现方式
2021/08/07 Golang
Winsows11性能如何? win11性能测评多核竟比Win10差了10%
2021/11/21 数码科技