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 相关文章推荐
Adodb的十个实例(清晰版)
Dec 31 PHP
php中文本操作的类
Mar 17 PHP
MySQL数据库转移,access,sql server 转 MySQL 的图文教程
Sep 02 PHP
php htmlspecialchars加强版
Feb 16 PHP
采用PHP函数memory_get_usage获取PHP内存清耗量的方法
Dec 06 PHP
具有时效性的php加密解密函数代码
Jun 19 PHP
php操作xml
Oct 27 PHP
php把数组值转换成键的方法
Jul 13 PHP
crontab无法执行php的解决方法
Jan 25 PHP
深入理解PHP 数组之count 函数
Jun 13 PHP
PHP入门教程之操作符与控制结构流程详解
Sep 09 PHP
PHP合并两个或多个数组的方法
Jan 20 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
动态网站web开发 PHP、ASP还是ASP.NET
2006/10/09 PHP
PHP伪静态写法附代码
2008/06/20 PHP
PHP以mysqli方式连接类完整代码实例
2014/07/15 PHP
smarty模板引擎从配置文件中获取数据的方法
2015/01/22 PHP
解析 thinkphp 框架中的部分方法
2017/05/07 PHP
javascript下阻止表单重复提交、防刷新、防后退
2007/08/17 Javascript
javascript教程:关于if简写语句优化的方法
2014/05/17 Javascript
JS实现仿QQ效果的三级竖向菜单
2015/09/25 Javascript
js+canvas绘制矩形的方法
2016/01/28 Javascript
基于jQuery实现二级下拉菜单效果
2016/02/01 Javascript
原生JavaScript实现Ajax的方法
2016/04/07 Javascript
jqueryMobile 动态添加元素,展示刷新视图的实现方法
2016/05/28 Javascript
js创建数组的简单方法
2016/07/27 Javascript
JavaScript使用Range调色及透明度实例
2016/09/25 Javascript
vue+element创建动态的form表单及动态生成表格的行和列
2019/05/20 Javascript
原生JavaScript实现幻灯片效果
2021/02/19 Javascript
python实现无证书加密解密实例
2014/10/27 Python
Python中IPYTHON入门实例
2015/05/11 Python
深入理解Python装饰器
2016/07/27 Python
python爬虫入门教程--利用requests构建知乎API(三)
2017/05/25 Python
使用paramiko远程执行命令、下发文件的实例
2017/10/01 Python
基于MATLAB和Python实现MFCC特征参数提取
2019/08/13 Python
使用canvas实现黑客帝国数字雨效果
2020/01/02 HTML / CSS
Java的for语句中break, continue和return的区别
2013/12/19 面试题
某IT外企面试题-二分法求方程!看看大家的C++功底
2015/07/04 面试题
餐饮总经理岗位职责
2014/03/07 职场文书
服务质量承诺书
2014/03/27 职场文书
幼师求职自荐信
2014/05/31 职场文书
安全目标管理责任书
2014/07/25 职场文书
社区护士演讲稿
2014/08/27 职场文书
2014年质量工作总结
2014/11/22 职场文书
董事长开业致辞
2015/07/29 职场文书
给校长的建议书范文
2015/09/14 职场文书
2015年中学体育教师工作总结
2015/10/23 职场文书
Python insert() / append() 用法 Leetcode实战演示
2021/03/31 Python
MySQL学习总结-基础架构概述
2021/04/05 MySQL