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抽象工厂模式(Elgg)
Mar 21 PHP
PHP取整数函数常用的四种方法小结
Jul 05 PHP
PHP自带函数给数字或字符串自动补齐位数
Jul 29 PHP
PHP使用json_encode函数时不转义中文的解决方法
Nov 12 PHP
php面向对象中static静态属性与方法的内存位置分析
Feb 08 PHP
PHP获取文件行数的方法
Jun 10 PHP
WordPress主题制作中自定义头部的相关PHP函数解析
Jan 08 PHP
浅谈PHP链表数据结构(单链表)
Jun 08 PHP
PHP面向对象程序设计类的定义与用法简单示例
Dec 27 PHP
php文件上传类的分享
Jul 06 PHP
php-fpm重启导致的程序执行中断问题详解
Apr 29 PHP
如何在PHP中使用数组
Jun 09 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
php实现zip压缩文件解压缩代码分享(简单易懂)
2014/05/10 PHP
PHP读取汉字的点阵数据
2015/06/22 PHP
PHP实现获取并生成数据库字典的方法
2016/05/04 PHP
PHP基于递归实现的约瑟夫环算法示例
2017/08/27 PHP
jQuery UI AutoComplete 自动完成使用小记
2010/08/21 Javascript
javascript不同类型数据之间的运算的转换方法
2014/02/13 Javascript
手写的一个兼容各种浏览器的javascript getStyle函数(获取元素的样式)
2014/06/06 Javascript
如何判断微信内置浏览器(通过User Agent实现)
2014/09/01 Javascript
第四篇Bootstrap网格系统偏移列和嵌套列
2016/06/21 Javascript
在javaScript中检测数据类型的几种方式小结
2017/03/04 Javascript
Javascript ES6中数据类型Symbol的使用详解
2017/05/02 Javascript
vue时间格式化实例代码
2017/06/13 Javascript
vue App.vue中的公共组件改变值触发其他组件或.vue页面监听
2019/05/31 Javascript
云服务器部署Node.js项目的方法步骤(小白系列)
2020/03/23 Javascript
通过实例了解Render Props回调地狱解决方案
2020/11/04 Javascript
Vue用mixin合并重复代码的实现
2020/11/27 Vue.js
python调用windows api锁定计算机示例
2014/04/17 Python
浅析Python中的多条件排序实现
2016/06/07 Python
python利用拉链法实现字典方法示例
2017/03/25 Python
Python进阶之尾递归的用法实例
2018/01/31 Python
python MySQLdb使用教程详解
2018/03/20 Python
python生成lmdb格式的文件实例
2018/11/08 Python
波兰家具和室内装饰品购物网站:Vivre
2018/04/10 全球购物
PHP如何设置和取得Cookie值
2015/06/30 面试题
触发器(trigger)的功能都有哪些?写出一个触发器的例子
2012/09/17 面试题
文秘专业自荐信
2013/10/14 职场文书
中学老师的自我评价
2013/11/07 职场文书
高中学生期末评语
2014/04/25 职场文书
文明生主要事迹
2014/05/25 职场文书
小城镇建设汇报材料
2014/08/16 职场文书
结对共建协议书
2014/08/20 职场文书
单方离婚协议书范本2014
2014/10/28 职场文书
2014年销售部工作总结
2014/12/01 职场文书
2015年三年级班主任工作总结
2015/05/21 职场文书
2016领导干部廉洁从政心得体会
2016/01/19 职场文书
python对文档中元素删除,替换操作
2022/04/02 Python