Laravel5.1 数据库--DB运行原生SQL
Laravel操作数据库有三种:DB原生SQL、构建器、Model。这三种依情况而决定使用哪种更合适。
那么今儿咱就从DB原生SQL说起:
1 用DB门面原生SQL语句操作
用DB门面操作的话呢 无非就是:insert、select、update、delete 另外附加一个statement(通用语句 比如drop之类的)。
1.1 insert
public function getInsert()
{
DB::insert('INSERT INTO articles (title, body)VALUE(?, ?)', ['learn laravel', 'balablalabalabla']);
}
insert方法接受两个参数 第一个参数呢 就是原生的SQL语句,第二个参数是一个数组 对应的sql语句中的?
1.2 select
public function getArticles(){
$articles = DB::select('SELECT * FROM articles WHERE title=:title', ['title' => 'learn laravel']);
foreach ($articles as $article){
echo "<p>$article->id</p>";
echo "<p>$article->title</p>";
echo "<p>$article->body</p>";
}
}
我们的占位符不仅仅是? 也可以用":name" 来表示,对应的数组就是一对儿一对儿的键值。
1.3 update
public function getUpdate()
{
$affected = DB::update('UPDATE articles SET title=:title,body=:body WHERE id=:id',['title' => 'laravel database', 'body' => 'balabala', 'id' => 1]);
echo $affected;
}
update方法还返回了一个affected 这是受到影响的总行数。
1.4 delete
public function getDelete()
{
$affected = DB::delete('DELETE FROM articles WHERE id=:id', ['id' => 2]);
echo $affected;
}
1.5 statement
public function getDrop()
{
DB::statement('DROP TABLE articles');
}
2 监听查询
我们可以用 listen方法 监听每一次操作数据库动作,这样我们就可以用于 记录日志啊 调试啊什么的:
class AppServiceProvider extends ServiceProvider
{
/**
* Bootstrap any application services.
*
* @return void
*/
public function boot()
{
DB::listen(function($sql, $bindings, $time){
// $sql = 查询语句
// $bindings = 绑定的键和值 数组类型
// 所用的时间
});
} /**
* Register any application services.
*
* @return void
*/
public function register()
{
//
}
}
Laravel5.1 数据库--DB运行原生SQL的更多相关文章
- jDialects:一个从Hibernate抽取的支持70多种数据库方言的原生SQL分页工具
jDialects(https://git.oschina.net/drinkjava2/jdialects) 是一个收集了大多数已知数据库方言的Java小项目,通常可用来创建分页SQL和建表DDL语 ...
- Django中使用mysql数据库并使用原生sql语句操作
Django自身默认使用sqlite3这个轻量级的数据库,但是当我们开发网站时,sqlite3就没有mysql好,sqlite3适合一些手机上开发使用的数据库. 准备的软件mysql数据库,版本5.7 ...
- Hibernate运行原生sql并将查询的结果转化为对象
原生SQL查询执行的控制是通过SQLQuery接口进行的,通过执行Session.createSQLQuery()获取这个接口.下面来描述如何使用这个API进行查询.标量查询(Scalar queri ...
- 数据库每分钟运行监控SQL
每1分钟运行一次,记录正在运行的SQL,监控数据 放在ReportServer库的t_WhoIsActive表中,保留最近30天的数据! USE [ReportServer] GO /****** O ...
- Laravel5.1 数据库-查询构建器
今儿个咱说说查询构建器.它比运行原生SQL要简单些,它的操作面儿也是比较广泛的. 1 查询结果 先来看看它的语法: public function getSelect() { $result = DB ...
- Django ORM 使用原生 SQL
使用原生sql的 方法 : raw # row方法:(掺杂着原生sql和orm来执行的操作) res = CookBook.objects.raw('select id as nid from epo ...
- MySQL 数据库性能优化之SQL优化
前言 有人反馈之前几篇文章过于理论缺少实际操作细节,这篇文章就多一些可操作性的内容吧. 注:这篇文章是以 MySQL 为背景,很多内容同时适用于其他关系型数据库,需要有一些索引知识为基础. 优化目标 ...
- MySQL 数据库性能优化之SQL优化【转】
优化目标 减少 IO 次数IO永远是数据库最容易瓶颈的地方,这是由数据库的职责所决定的,大部分数据库操作中超过90%的时间都是 IO 操作所占用的,减少 IO 次数是 SQL 优化中需要第一优先考虑, ...
- 数据库入门之运行原始 SQL 查找
数据库入门之运行原始 SQL 查找 一旦你设置好了数据库连接,就可以使用 DB facade 来进行查找.DB facade 提供每个类型的查找方法:select.update.insert.dele ...
随机推荐
- 《Hadoop基础教程》之初识Hadoop 【转】
Hadoop一直是我想学习的技术,正巧最近项目组要做电子商城,我就开始研究Hadoop,虽然最后鉴定Hadoop不适用我们的项目,但是我会继续研究下去,技多不压身. <Hadoop基础教程> ...
- vulkan
https://gfxbench.com/device.jsp?benchmark=gfx40&os=Android&api=gl&D=Asus+ZenFone+4+%28Ad ...
- Mybatis c3p0 整合
1.下载c3p0 2.实现 UnpooledDataSourceFactory package com.joinhealth.esb.db; import org.apache.ibatis.data ...
- Oracle OS认证 口令文件 密码丢失处理
Oracle OS认证 口令文件 密码丢失处理 分类: Oracle Basic Knowledge2009-10-19 14:24 5031人阅读 评论(9) 收藏 举报 oracleos数据库sq ...
- Centos 7 搭建蓝鲸V4.1.16社区版
第一次搭建蓝鲸平台,参考了蓝鲸社区的官方搭建文档. 友情链接:蓝鲸智云社区版V4.1.16用户手册 搭建时遇到了不少的坑,这里做一个详细的安装梳理 主机硬件要求 官方的推荐如下: 在本地用VMware ...
- [Parcel] Running TypeScript with parcel-bundler
TO get started with TypeScirpt quickly in your local computer is using parcel-bunlder: npm i -g parc ...
- ExtentReports 结合 TestNg 生成自动化 html 报告 (支持多 suite)
转载:https://testerhome.com/topics/8134 重要说明:报告监听器源码修复一些bug,不再此处更新代码,最新代码可以到github查看最新报告监听器源码 前几天分享了ht ...
- ZT:有些人,活了一辈子,其实不过是认真过了一天,其余时间都在重复这一天而已
出处:http://news.163.com/17/1011/19/D0G7UEDS0001982T.html 有些人,活了一辈子,其实不过是认真过了一天,其余时间都在重复这一天而已,也有人每天不重样 ...
- 如何使用FlashgameMaster修改游戏
1 打开任意一款游戏,注意最好是AS2.0版的,我们以黄金矿工为例. 2 使用方法: 点击编辑按钮的打开编辑面板出现编辑面板后在对话框中输入要查找的数值,点击查找按钮,会列表出所以等于该值的变量. 如 ...
- unity3d NGUI 本地化 多语言
原地址:http://cl314413.blog.163.com/blog/static/1905079762014421115528670/ NGUI的本地化操作: Localization UIL ...