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新手上路(十二)
Oct 09 PHP
弄了个检测传输的参数是否为数字的Function
Dec 06 PHP
discuz 首页四格:最新话题+最新回复+热门话题+精华文章插件
Aug 19 PHP
PHP 文件上传进度条的两种实现方法的代码
Nov 25 PHP
php DOS攻击实现代码(附如何防范)
May 29 PHP
基于php socket(fsockopen)的应用实例分析
Jun 02 PHP
浅谈php serialize()与unserialize()的用法
Jun 05 PHP
php json_encode值中大括号与花括号区别
Sep 30 PHP
浅谈php7的重大新特性
Oct 23 PHP
PHP设计模式之命令模式示例详解
Dec 20 PHP
php框架知识点的整理和补充
Mar 01 PHP
让你的PHP,APACHE,NGINX支持大文件上传
Mar 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迭代器实现斐波纳契数列的函数
2013/11/12 PHP
使用PHPExcel实现数据批量导出为excel表格的方法(必看)
2017/06/09 PHP
php mysql数据库操作类(实例讲解)
2017/08/06 PHP
JavaScript 计算当天是本年本月的第几周
2009/03/22 Javascript
javascript中xml操作实现代码
2011/11/21 Javascript
JQuery 图片的展开和伸缩实例讲解
2013/04/18 Javascript
javascript获取ckeditor编辑器的值(实现代码)
2013/11/18 Javascript
javascript 弹出的窗口返回值给父窗口具体实现
2013/11/23 Javascript
JS判断移动端访问设备并加载对应CSS样式
2014/06/13 Javascript
JQuery 获取Dom元素的实例讲解
2017/07/08 jQuery
Vue cli 引入第三方JS和CSS的常用方法分享
2018/01/20 Javascript
vue+webpack 打包文件 404 页面空白的解决方法
2018/02/28 Javascript
解决vue-cli webpack打包后加载资源的路径问题
2018/09/25 Javascript
JS跨域请求的问题解析
2018/12/03 Javascript
微信小程序实现九宫格抽奖
2020/04/15 Javascript
基于Vue插入视频的2种方法小结
2019/04/02 Javascript
怎样在vue项目下添加ESLint的方法
2019/05/16 Javascript
Python正则表达式教程之三:贪婪/非贪婪特性
2017/03/02 Python
一个基于flask的web应用诞生 用户注册功能开发(5)
2017/04/11 Python
用python的requests第三方模块抓取王者荣耀所有英雄的皮肤实例
2017/12/14 Python
python实现k-means聚类算法
2018/02/23 Python
详谈python3 numpy-loadtxt的编码问题
2018/04/29 Python
PyCharm安装Markdown插件的两种方法
2019/06/24 Python
用python拟合等角螺线的实现示例
2019/12/27 Python
pycharm中导入模块错误时提示Try to run this command from the system terminal
2020/03/26 Python
PyInstaller的安装和使用的详细步骤
2020/06/02 Python
一份全面的PHP面试问题考卷
2012/07/15 面试题
应届生服装设计自我评价
2013/09/20 职场文书
护理专业的自荐信
2013/10/22 职场文书
小学教师的个人自我鉴定
2013/10/26 职场文书
语文教育专业推荐信范文
2013/11/25 职场文书
求职信需要的五点内容
2014/02/01 职场文书
推荐信模板
2014/05/09 职场文书
奖励申请报告范文
2015/05/15 职场文书
用Python提取PDF表格的方法
2021/04/11 Python
Python实现打乒乓小游戏
2021/09/25 Python