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 相关文章推荐
BBS(php &amp; mysql)完整版(七)
Oct 09 PHP
9个PHP开发常用功能函数小结
Jul 15 PHP
php模拟ping命令(php exec函数的使用方法)
Oct 25 PHP
PHP中HTML标签过滤技巧
Jan 07 PHP
php cli换行示例
Apr 22 PHP
thinkphp文件引用与分支结构用法实例
Nov 26 PHP
php实现RSA加密类实例
Mar 26 PHP
PHP实现批量修改文件后缀名的方法
Jul 30 PHP
php学习笔记之mb_strstr的基本使用
Feb 03 PHP
php格式文件打开的四种方法
Feb 24 PHP
YII2.0框架行为(Behavior)深入详解
Jul 26 PHP
PHP实现爬虫爬取图片代码实例
Mar 03 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
PHP5中MVC结构学习
2006/10/09 PHP
php zend 相对路径问题
2009/01/12 PHP
php新建文件自动编号的思路与实现
2011/06/27 PHP
分享一个PHP数据流应用的简单例子
2012/06/01 PHP
Apache启动报错No space left on device: AH00023该怎么解决
2015/10/16 PHP
php判断文件上传图片格式的实例详解
2017/09/30 PHP
如何优雅的使用 laravel 的 validator验证方法
2018/11/11 PHP
jquery 关键字“拖曳搜索”之“拖曳”以及 图片“提示自适应放大”效果 的实现
2010/04/18 Javascript
javascript基础知识大集锦(一) 推荐收藏
2011/01/13 Javascript
js键盘事件的keyCode
2014/07/29 Javascript
javascript表单控件实例讲解
2016/09/13 Javascript
基于JS分页控件实现简单美观仿淘宝分页按钮效果
2016/11/07 Javascript
详解JavaScript的闭包、IIFE、apply、函数与对象
2016/12/21 Javascript
vue使用Element组件时v-for循环里的表单项验证方法
2018/06/28 Javascript
vue父组件给子组件的组件传值provide inject的方法
2019/10/23 Javascript
JS通过识别id、value值对checkbox设置选中状态
2020/02/19 Javascript
[02:59]DOTA2完美大师赛主赛事第三日精彩集锦
2017/11/25 DOTA
Python读取ini文件、操作mysql、发送邮件实例
2015/01/01 Python
Django如何实现内容缓存示例详解
2017/09/24 Python
Python使用sklearn库实现的各种分类算法简单应用小结
2019/07/04 Python
一篇文章弄懂Python中的可迭代对象、迭代器和生成器
2019/08/12 Python
Python高级特性 切片 迭代解析
2019/08/23 Python
pygame实现非图片按钮效果
2019/10/29 Python
PyCharm使用Docker镜像搭建Python开发环境
2019/12/26 Python
Django中使用Celery的方法步骤
2020/12/07 Python
东南亚旅游平台:The Trip Guru
2018/01/01 全球购物
英国二手iPhone、音乐、电影和游戏商店:musicMagpie
2018/10/26 全球购物
工作疏忽检讨书
2014/01/25 职场文书
空中乘务员岗位职责
2014/03/08 职场文书
论文诚信承诺书
2014/05/23 职场文书
房屋出租协议书范本(标准版)
2014/09/24 职场文书
2014年体育教师工作总结
2014/12/03 职场文书
2015年七夕情人节感言
2015/08/03 职场文书
幼儿园小班教学反思
2016/03/03 职场文书
MySQL查询学习之基础查询操作
2021/05/08 MySQL
Centos环境下Postgresql 安装配置及环境变量配置技巧
2021/05/18 PostgreSQL