首页 后端开发 php教程 Laravel5.* 打印出执行的sql语句

Laravel5.* 打印出执行的sql语句

Feb 01, 2018 pm 01:07 PM
语句

本文主要介绍Laravel5.* 打印出执行的sql语句的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能帮助到大家。

打开appProvidersAppServiceProvider.PHP,在boot方法中添加如下内容

5.2以下版本


// 先引入DB 
use DB;
// 或者直接使用 \DB::
 DB::listen(function($sql, $bindings, $time) {
        dump($sql);
      });
登录后复制

5.2及以上版本


use DB;
// 或者直接使用 \DB::
// 只能接受一个参数

QueryExecuted {#84 ▼
 +sql: "select * from `posts` where `slug` = ? limit 1"
 +bindings: array:1 [▶]
 +time: 0.59
 +connection: MySqlConnection {#85 ▶}
 +connectionName: "mysql"
}

 DB::listen(function($sql) {
        dump($sql);
        // echo $sql->sql;
        // dump($sql->bindings);
      });

// 如果要放入日志文件中
DB::listen(
  function ($sql) {
    // $sql is an object with the properties:
    // sql: The query
    // bindings: the sql query variables
    // time: The execution time for the query
    // connectionName: The name of the connection

    // To save the executed queries to file:
    // Process the sql and the bindings:
    foreach ($sql->bindings as $i => $binding) {
      if ($binding instanceof \DateTime) {
        $sql->bindings[$i] = $binding->format('\'Y-m-d H:i:s\'');
      } else {
        if (is_string($binding)) {
          $sql->bindings[$i] = "'$binding'";
        }
      }
    }

    // Insert bindings into query
    $query = str_replace(array('%', '?'), array('%%', '%s'), $sql->sql);

    $query = vsprintf($query, $sql->bindings);

    // Save the query to file
    $logFile = fopen(
      storage_path('logs' . DIRECTORY_SEPARATOR . date('Y-m-d') . '_query.log'),
      'a+'
    );
    fwrite($logFile, date('Y-m-d H:i:s') . ': ' . $query . PHP_EOL);
    fclose($logFile);
  }
);
登录后复制

相关推荐:

SQL语句实现格式化功能php代码

Laravel如何记录SQL语句

thinkphp执行原生SQL语句的实现方法

以上是Laravel5.* 打印出执行的sql语句的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

PHP8.0中的multi-catch语句 PHP8.0中的multi-catch语句 May 14, 2023 pm 01:51 PM

随着Web应用程序的发展,PHP语言在Web开发中得到了广泛应用。而在PHP8.0版本中,一个新的语言特性被引入——multi-catch语句。什么是multi-catch语句?在先前的PHP版本中,对于多个异常类型的处理,开发人员需要写多个catch语句。例如,如下代码块展示了对两种不同异常的处理:try{//Somecodethatmay

如何实现MySQL中插入数据的语句? 如何实现MySQL中插入数据的语句? Nov 08, 2023 am 11:48 AM

如何实现MySQL中插入数据的语句?在使用MySQL数据库时,插入数据是一项非常基础且常见的操作。通过插入数据,可以将新的记录添加到数据库表中,为业务操作提供支持。本文将介绍如何使用MySQL中的INSERT语句来实现数据插入操作,并提供具体的代码示例。MySQL中的INSERT语句用于向数据库表中插入新的记录。其基本语法格式如下:INSERTINTOt

C#的try语句用法 C#的try语句用法 Feb 22, 2024 pm 12:45 PM

C#的try语句用法,需要具体代码示例C#是一种面向对象的编程语言,其中的try语句是一种用于捕获和处理异常的结构。通过try语句,我们可以编写代码来处理可能发生的异常情况,从而改善程序的稳定性和可靠性。在本文中,我们将介绍C#中try语句的用法,并提供一些具体的代码示例来帮助读者理解。在C#中,try语句由try块、catch块和optionalfina

了解Python中的流程控制语句需要掌握几种情况 了解Python中的流程控制语句需要掌握几种情况 Jan 20, 2024 am 08:06 AM

Python是一种广泛使用的高级编程语言,它具有简单易学、高效灵活的特点,深受开发者的喜爱。在Python中,流程控制语句是实现程序逻辑的重要部分。本文将介绍Python中常用的流程控制语句,并提供代码示例加深理解。在Python中,常见的流程控制语句包括条件语句和循环语句。条件语句根据条件的真假执行不同的代码块,用于判断和选择执行分支。而循环语句则用于重复

掌握Python流程控制语句的种类,从零开始学习! 掌握Python流程控制语句的种类,从零开始学习! Jan 20, 2024 am 09:02 AM

从零开始学Python,先搞懂流程控制语句有几种!Python是一门简洁而强大的编程语言,广泛用于数据分析、人工智能、网络开发以及各种科学计算领域。作为初学者,掌握基本的流程控制语句是非常重要的,因为它们是实现逻辑判断和控制程序执行流程的基础。在Python中,主要有三种流程控制语句:顺序结构、条件结构和循环结构。下面将具体介绍这三种流程控制语句,并给出相应

如何实现MySQL中解锁表的语句? 如何实现MySQL中解锁表的语句? Nov 08, 2023 pm 06:28 PM

如何实现MySQL中解锁表的语句?在MySQL中,表锁是一种常用的锁定机制,用于保护数据的完整性和一致性。当一个事务正在对某个表进行读写操作时,其他事务就无法对该表进行修改。这种锁定机制在一定程度上保证了数据的一致性,但也可能导致其他事务的阻塞。因此,如果一个事务因为某种原因无法继续执行,我们需要手动解锁表,以便其他事务可以继续进行操作。MySQL提供了多种

如何实现MySQL中更改用户密码的语句? 如何实现MySQL中更改用户密码的语句? Nov 08, 2023 am 09:05 AM

MySQL是一种常用的关系型数据库系统,用于管理和存储数据。在MySQL中,用户密码是保护数据库安全的重要因素之一。而在日常管理数据库中,会经常需要更改用户的密码以保证数据库的安全性。那么,如何实现MySQL中更改用户密码的语句呢?本文将为大家提供具体代码示例。通过ALTERUSER语句更改MySQL用户密码ALTERUSER语句是MySQL8.0及以上

SQL ALTER语句的用途 SQL ALTER语句的用途 Feb 19, 2024 pm 05:01 PM

SQL的ALTER语句作用,需要具体代码示例在数据库管理系统中,ALTER语句是一种用于修改数据库对象的SQL命令。通过ALTER语句,我们可以对表、列、索引、视图等数据库对象进行修改,包括添加、删除、修改等操作。下面将具体介绍ALTER语句的常见用法,并提供相关的代码示例。ALTERTABLE语句用于修改表的结构。可以通过添加、删除、修改列、约束、索引等

See all articles