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 相关文章推荐
PHPMailer邮件类利用smtp.163.com发送邮件方法
Sep 11 PHP
php escape URL编码
Dec 10 PHP
php中用foreach来操作数组的代码
Jul 17 PHP
PHP与MYSQL中UTF8 中文排序示例代码
Oct 23 PHP
PHP实现服务器状态监控的方法
Dec 09 PHP
php实现TCP端口检测的方法
Apr 01 PHP
PHP连接MSSQL方法汇总
Feb 05 PHP
PHP入门教程之图像处理技巧分析
Sep 11 PHP
PHP后期静态绑定之self::限制实例分析
Dec 21 PHP
stripos函数知识点实例分享
Feb 11 PHP
PHP错误提示It is not safe to rely on the system……的解决方法
Mar 25 PHP
PHP7 新增功能
Mar 09 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动态变静态原理
2006/11/25 PHP
DISCUZ 分页代码
2007/01/02 PHP
Yii2实现log输出到file及database的方法
2016/11/12 PHP
ThinkPHP实现静态缓存和动态缓存示例代码
2017/05/02 PHP
php 多进程编程父进程的阻塞与非阻塞实例分析
2020/02/22 PHP
cssQuery()的下载与使用方法
2007/01/12 Javascript
IE8对JS通过属性和数组遍历解析不一样的地方探讨
2013/05/06 Javascript
jquery实现图片翻页效果
2013/12/23 Javascript
JS实现往下不断流动网页背景的方法
2015/02/27 Javascript
JS 对象属性相关(检查属性、枚举属性等)
2015/04/05 Javascript
JavaScript+CSS实现仿天猫侧边网页菜单效果
2015/08/25 Javascript
js判断登陆用户名及密码是否为空的简单实例
2016/05/16 Javascript
jquery实现界面无刷新加载登陆注册
2016/07/30 Javascript
AngularJS中isolate scope的用法分析
2016/11/22 Javascript
Laravel整合Bootstrap 4的完整方案(推荐)
2018/01/25 Javascript
Vue组件中prop属性使用说明实例代码详解
2018/05/31 Javascript
详解Nuxt内导航栏的两种实现方式
2020/04/16 Javascript
解决vue项目axios每次请求session不一致的问题
2020/10/24 Javascript
[02:12]打造更好的电竞完美世界:完美盛典回顾篇
2018/12/19 DOTA
R vs. Python 数据分析中谁与争锋?
2017/10/18 Python
Python进程间通信之共享内存详解
2017/10/30 Python
python实现K最近邻算法
2018/01/29 Python
Python for循环中的陷阱详解
2018/07/13 Python
django 快速启动数据库客户端程序的方法示例
2019/08/16 Python
python实现门限回归方式
2020/02/29 Python
Canvas与Image互相转换示例代码
2013/08/09 HTML / CSS
有趣的睡衣和礼物:LazyOne
2019/11/27 全球购物
成人大专自我鉴定范文
2013/10/19 职场文书
应届大学生的推荐信
2013/11/20 职场文书
七年级英语教学反思
2014/01/15 职场文书
中专毕业生个人职业生涯规划
2014/02/19 职场文书
个人廉洁自律承诺书
2014/03/27 职场文书
2016七一建党节慰问信
2015/11/30 职场文书
有关花店创业的计划书模板
2019/08/27 职场文书
Django Paginator分页器的使用示例
2021/06/23 Python
Python读写yaml文件
2022/03/20 Python