Laravel5.1 框架数据库操作DB运行原生SQL的方法分析


Posted in PHP onJanuary 07, 2020

本文实例讲述了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()
  {
    //
  }
}

希望本文所述对大家基于Laravel框架的PHP程序设计有所帮助。

PHP 相关文章推荐
php下获取Discuz论坛登录用户名、用户组、用户ID等信息的实现代码
Dec 29 PHP
PHP提取字符串中的图片地址[正则表达式]
Nov 12 PHP
基于PHP文件操作的详解
Jun 05 PHP
PHP删除目录及目录下所有文件的方法详解
Jun 06 PHP
在PHP中运行Linux命令并启动SSH服务的例子
Jun 12 PHP
php中限制ip段访问、禁止ip提交表单的代码分享
Aug 22 PHP
thinkphp循环结构用法实例
Nov 24 PHP
PHP中浮点数计算比较及取整不准确的解决方法
Jan 09 PHP
PHP实现数组array转换成xml的方法
Jul 19 PHP
浅谈PHP的反射机制
Dec 15 PHP
PHP Swoole异步读取、写入文件操作示例
Oct 24 PHP
PHP程序员简单的开展服务治理架构操作详解(三)
May 14 PHP
Laravel5.1 框架表单验证操作实例详解
Jan 07 #PHP
PHP字符串与数组处理函数用法小结
Jan 07 #PHP
Laravel5.1 框架响应基本用法实例分析
Jan 04 #PHP
Laravel5.1 框架Request请求操作常见用法实例分析
Jan 04 #PHP
Laravel5.1 框架Middleware中间件基本用法实例分析
Jan 04 #PHP
Laravel 5.1 框架Blade模板引擎用法实例分析
Jan 04 #PHP
Laravel5.1 框架控制器基础用法实例分析
Jan 04 #PHP
You might like
9个PHP开发常用功能函数小结
2011/07/15 PHP
php采用ajax数据提交post与post常见方法总结
2014/11/10 PHP
讲两件事:1.this指针的用法小探. 2.ie的attachEvent和firefox的addEventListener在事件处理上的区别
2007/04/12 Javascript
在子窗口中关闭父窗口的一句代码
2013/10/21 Javascript
取消选中单选框radio的三种方式示例介绍
2013/12/23 Javascript
基于jquery编写分页插件
2016/03/07 Javascript
JS 对象(Object)和字符串(String)互转方法
2016/05/20 Javascript
全面了解JavaScript对象进阶
2016/07/19 Javascript
什么是JavaScript中的结果值?
2016/10/08 Javascript
JS实现PC手机端和嵌入式滑动拼图验证码三种效果
2017/02/15 Javascript
JS动态修改网页body的背景色实例代码
2017/10/07 Javascript
Node 升级到最新稳定版的方法分享
2018/05/17 Javascript
vue实现动态显示与隐藏底部导航的方法分析
2019/02/11 Javascript
vue操作dom元素的3种方法示例
2020/09/20 Javascript
[02:21]十步杀一人,千里不留行——DOTA2全新英雄天涯墨客展示
2018/08/29 DOTA
Python自动化测试工具Splinter简介和使用实例
2014/05/13 Python
分享15个最受欢迎的Python开源框架
2014/07/13 Python
利用arcgis的python读取要素的X,Y方法
2018/12/22 Python
Python简单实现区域生长方式
2020/01/16 Python
一波HTML5 Canvas基础绘图实例代码集合
2016/02/28 HTML / CSS
赫里福德的一家乡村零售商店:Philip Morris & Son
2017/06/25 全球购物
Hertz荷兰:荷兰和全球租车
2018/01/07 全球购物
澳洲的UGG雪地靴超级市场:Uggs.com.au
2020/04/06 全球购物
"序列点" 是什么
2016/07/29 面试题
会计专业毕业生自荐信范文
2013/12/20 职场文书
合作意向协议书范本
2014/03/31 职场文书
土木工程求职信
2014/05/29 职场文书
乡镇党建工作汇报材料
2014/08/14 职场文书
关于九一八事变的演讲稿2014
2014/09/17 职场文书
2014普法依法治理工作总结
2014/12/18 职场文书
公文写作:工伤事故分析报告怎么写?
2019/11/05 职场文书
Pytest实现setup和teardown的详细使用详解
2021/04/17 Python
pytorch 带batch的tensor类型图像显示操作
2021/05/20 Python
详解MindSpore自定义模型损失函数
2021/06/30 Python
Python&Matlab实现樱花的绘制
2022/04/07 Python
CentOS7安装GlusterFS集群以及相关配置
2022/04/12 Servers