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 从数据库提取二进制图片的处理代码
Sep 09 PHP
php中inlcude()性能对比详解
Sep 16 PHP
PHP使用pcntl_fork实现多进程下载图片的方法
Dec 16 PHP
php生成rss类用法实例
Apr 14 PHP
使用PHP处理数据库数据如何将数据返回客户端并显示当前状态
Feb 16 PHP
Yii框架连接mongodb数据库的代码
Jul 27 PHP
PHP查询分页的实现代码
Jun 09 PHP
PHP面向对象程序设计(OOP)之方法重写(override)操作示例
Dec 21 PHP
ThinkPHP框架整合微信支付之JSAPI模式图文详解
Apr 09 PHP
Windows服务器中PHP如何安装redis扩展
Sep 27 PHP
php+iframe 实现上传文件功能示例
Mar 04 PHP
Yii 框架使用Forms操作详解
May 18 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
《OVERLORD》手游英文版即将上线 手机上也能扮演骨王
2020/04/09 日漫
给WordPress的编辑后台添加提示框的代码实例分享
2015/12/25 PHP
LINUX下PHP程序实现WORD文件转化为PDF文件的方法
2016/05/13 PHP
遍历指定目录,并存储目录内所有文件属性信息的php代码
2016/10/28 PHP
PHP实现原生态图片上传封装类方法
2016/11/08 PHP
Nigma vs AM BO3 第一场2.13
2021/03/10 DOTA
前端必备神器 Snap.svg 弹动效果
2014/11/10 Javascript
使用RequireJS优化JavaScript引用代码的方法
2015/07/01 Javascript
利用JavaScript脚本实现滚屏效果的方法
2015/07/07 Javascript
confirm确认对话框的实现方法总结
2016/06/17 Javascript
jQuery html表格排序插件tablesorter使用方法详解
2017/02/10 Javascript
详解基于vue-cli3快速发布一个fullpage组件
2019/03/08 Javascript
atom-design(Vue.js移动端组件库)手势组件使用教程
2019/05/16 Javascript
Vue 实现前端权限控制的示例代码
2019/07/09 Javascript
vue cli安装使用less的教程详解
2019/07/12 Javascript
Vue 动态路由的实现及 Springsecurity 按钮级别的权限控制
2019/09/05 Javascript
Vue实现购物小球抛物线的方法实例
2020/11/22 Vue.js
[01:05:40]2014 DOTA2国际邀请赛中国区预选赛 5 23 CIS VS DT第三场
2014/05/24 DOTA
Python contextlib模块使用示例
2015/02/18 Python
Python两个整数相除得到浮点数值的方法
2015/03/18 Python
Python加pyGame实现的简单拼图游戏实例
2015/05/15 Python
Python使用pyshp库读取shapefile信息的方法
2018/12/29 Python
python2.7使用plotly绘制本地散点图和折线图
2019/04/02 Python
Django中如何使用sass的方法步骤
2019/07/09 Python
Python Selenium安装及环境配置的实现
2020/03/17 Python
django model的update时auto_now不被更新的原因及解决方式
2020/04/01 Python
Django ORM filter() 的运用详解
2020/05/14 Python
Python的Django框架实现数据库查询(不返回QuerySet的方法)
2020/05/19 Python
Python3基于plotly模块保存图片表格
2020/08/03 Python
向领导表决心的话
2014/03/11 职场文书
养成教育经验材料
2014/05/26 职场文书
社区精神文明建设汇报材料
2014/08/17 职场文书
讲文明知礼仪演讲稿
2014/09/13 职场文书
庆元旦演讲稿
2014/09/15 职场文书
教师理论学习心得体会
2016/01/21 职场文书
《Estab Life》4月6日播出 正式PV、主视觉图公开
2022/03/20 日漫