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版(3)
Oct 09 PHP
PHP实现图片简单上传
Oct 09 PHP
PHP中使用foreach和引用导致程序BUG的问题介绍
Sep 05 PHP
解析ajax事件的调用顺序
Jun 17 PHP
PHP开发中常见的安全问题详解和解决方法(如Sql注入、CSRF、Xss、CC等)
Apr 21 PHP
PHP临时文件的安全性分析
Jul 04 PHP
php实现的RSS生成类实例
Apr 23 PHP
Yii调试查看执行SQL语句的方法
Jul 15 PHP
php提交表单时保留多个空格及换行的文本样式的方法
Jun 20 PHP
PHP+AJAX 投票器功能
Nov 11 PHP
PHP中register_shutdown_function函数的基础介绍与用法详解
Nov 28 PHP
laravel实现按时间日期进行分组统计方法示例
Mar 23 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自定义函数之递归删除文件及目录
2010/08/08 PHP
php Rename 更改文件、文件夹名称
2011/05/24 PHP
图解找出PHP配置文件php.ini的路径的方法
2014/08/20 PHP
php一行代码获取文件后缀名实例分析
2014/11/12 PHP
PHP使用get_headers函数判断远程文件是否存在的方法
2014/11/28 PHP
php实现在限定区域里自动调整字体大小的类实例
2015/04/02 PHP
详细解读PHP中接口的应用
2015/08/12 PHP
javascript显示选择目录对话框的代码
2008/11/10 Javascript
javascript 流畅动画实现原理
2009/09/08 Javascript
jQuery getJSON 处理json数据的代码
2010/07/26 Javascript
Knockoutjs的环境搭建教程
2012/11/26 Javascript
jquery实现的随机多彩tag标签随机颜色和字号大小效果
2014/03/27 Javascript
浅谈JavaScript函数节流
2014/12/09 Javascript
JavaScript中自定义事件用法分析
2014/12/23 Javascript
详解jQuery中的DOM操作
2016/12/23 Javascript
js 轮播效果实例分享
2016/12/28 Javascript
vue-cli+webpack项目 修改项目名称的方法
2018/02/28 Javascript
详解在create-react-app使用less与antd按需加载
2018/12/06 Javascript
使用preload预加载页面资源时注意事项
2020/02/03 Javascript
JS 逻辑判断不要只知道用 if-else 和 switch条件判断(小技巧)
2020/05/27 Javascript
[03:14]辉夜杯主赛事 12月25日每日之星
2015/12/26 DOTA
手把手教你python实现SVM算法
2017/12/27 Python
简单的python协同过滤程序实例代码
2018/01/31 Python
Python 反转字符串(reverse)的方法小结
2018/02/20 Python
在python中用url_for构造URL的方法
2019/07/25 Python
Python搭建代理IP池实现接口设置与整体调度
2019/10/27 Python
python3+opencv生成不规则黑白mask实例
2020/02/19 Python
麦当劳印度网上订餐:McDelivery
2020/03/16 全球购物
Net Remoting把服务器端激活两种模式
2014/01/22 面试题
EntityManager都有哪些方法
2013/11/01 面试题
护理毕业生自荐信范文
2013/12/22 职场文书
公司会计主管岗位责任制
2014/03/01 职场文书
开展党的群众路线教育实践活动剖析材料
2014/10/13 职场文书
2015年会计人员工作总结
2015/05/22 职场文书
婚礼答谢词范文
2015/09/29 职场文书
告诉你一个秘密:富人致富的五大优点
2019/07/11 职场文书