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 has encountered an Access Violation at 7C94BD02解决方法
Aug 24 PHP
PHP 登录完成后如何跳转上一访问页面
Jan 14 PHP
一个不易被发现的PHP后门代码解析
Jul 05 PHP
如何让thinkphp在模型中自动完成session赋值小教程
Sep 05 PHP
PHP模板引擎Smarty内置变量调解器用法详解
Apr 11 PHP
PHP接收App端发送文件流的方法
Sep 23 PHP
PHP中SERIALIZE和JSON的序列化与反序列化操作区别分析
Oct 11 PHP
php 一维数组的循环遍历实现代码
Apr 10 PHP
利用Homestead快速运行一个Laravel项目的方法详解
Nov 14 PHP
PHP基于mcript扩展实现对称加密功能示例
Feb 21 PHP
php实现session共享的实例方法
Sep 19 PHP
laravel框架创建授权策略实例分析
Nov 22 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
用Apache反向代理设置对外的WWW和文件服务器
2006/10/09 PHP
php自定文件保存session的方法
2014/12/10 PHP
html数组字符串拼接的最快方法
2009/09/16 Javascript
jQuery toggle()设置CSS样式
2009/11/05 Javascript
jQuery UI AutoComplete 自动完成使用小记
2010/08/21 Javascript
jQuery实战之品牌展示列表效果
2011/04/10 Javascript
IE6/7/8/9不支持exec的简写方式
2011/05/25 Javascript
用Javascript实现Windows任务管理器的代码
2012/03/27 Javascript
js 限制数字 js限制输入实现代码
2012/12/04 Javascript
js工具方法弹出蒙版
2013/05/08 Javascript
类似于QQ的右滑删除效果的实现方法
2016/10/16 Javascript
JS如何生成一个不重复的ID的函数
2016/12/25 Javascript
jQuery插件ajaxFileUpload使用详解
2017/01/10 Javascript
Angular4学习笔记router的简单使用
2018/03/30 Javascript
Vue+Element实现表格编辑、删除、以及新增行的最优方法
2019/05/28 Javascript
使用VScode 插件debugger for chrome 调试react源码的方法
2019/09/13 Javascript
JavaScript获取当前url路径过程解析
2019/12/27 Javascript
angular组件间传值测试的方法详解
2020/05/07 Javascript
python3.3教程之模拟百度登陆代码分享
2014/01/16 Python
用Python写一段用户登录的程序代码
2018/04/22 Python
Python解析并读取PDF文件内容的方法
2018/05/08 Python
Python面向对象基础入门之设置对象属性
2018/12/11 Python
分析经典Python开发工程师面试题
2019/04/08 Python
简单了解python中的f.b.u.r函数
2019/11/02 Python
外语专业毕业生个人的自荐信
2013/11/19 职场文书
最新大学职业规划书范文
2013/12/30 职场文书
2014年教师培训的自我评价
2014/01/03 职场文书
党支部书记岗位责任制
2014/02/11 职场文书
公司担保书范文
2014/05/21 职场文书
高中学校对照检查材料
2014/08/31 职场文书
2014镇副书记群众路线专题民主生活会思想汇报
2014/09/23 职场文书
夫妻分居协议书范本
2014/11/28 职场文书
小学优秀教师事迹材料
2014/12/16 职场文书
爱心捐款活动总结
2015/05/09 职场文书
交通事故代理词范文
2015/05/23 职场文书
赢在中国观后感
2015/06/02 职场文书