欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Laravel框架實現(xiàn)利用監(jiān)聽器進(jìn)行sql語句記錄功能

 更新時間:2018年06月06日 11:20:36   作者:偶-木  
這篇文章主要介紹了Laravel框架實現(xiàn)利用監(jiān)聽器進(jìn)行sql語句記錄功能,結(jié)合實例形式分析了Laravel框架監(jiān)聽器的創(chuàng)建、引入以及使用監(jiān)聽器記錄sql語句的相關(guān)操作技巧,需要的朋友可以參考下

本文實例講述了Laravel框架實現(xiàn)利用監(jiān)聽器進(jìn)行sql語句記錄功能。分享給大家供大家參考,具體如下:

利用監(jiān)聽器進(jìn)行sql語句記錄

1、監(jiān)聽sql語句的事件類已經(jīng)定義,直接創(chuàng)建監(jiān)聽器類即可:

# 監(jiān)聽sql
make:listener QueryListener --event=Illuminate\Database\Events\QueryExecuted

2、監(jiān)聽器類代碼

./app/Listeners/QueryListener.php

<?php
namespace App\Listeners;
use Illuminate\Database\Events\QueryExecuted;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Contracts\Queue\ShouldQueue;
use App\Http\Models\OperationLog;
class QueryListener
{
  /**
   * Create the event listener.
   *
   * @return void
   */
  public function __construct()
  {
    //
  }
  /**
   * Handle the event.
   *
   * @param QueryExecuted $event
   * @return void
   */
  public function handle(QueryExecuted $event)
  {
    $sql = str_replace("?", "'%s'", $event->sql);
    $log = vsprintf($sql, $event->bindings);
    # 此處$uid定義是依賴于中間件記錄操作日志代碼
    $uid = isset($_SERVER['admin_uid']) ? $_SERVER['admin_uid'] : 0;
    if('select' != substr($log , 0 , 6)){
      if('insert into `operationLog`' != substr($log , 0 , 26)){
        $OperationLog = new OperationLog();
        $OperationLog->uid = $uid;
        $OperationLog->sql = $log;
        $OperationLog->input = '';
        $OperationLog->save();
      }
    }
  }
}

3、引入監(jiān)聽器

./app/Providers/EventServiceProvider.php

protected $listen = [
    ...
    \Illuminate\Database\Events\QueryExecuted::class => [
      'App\Listeners\QueryListener'
    ],
    ...
  ];

此時進(jìn)行操作時就會記錄sql日志

相關(guān)文章:

Laravel框架實現(xiàn)利用中間件進(jìn)行操作日志記錄功能

更多關(guān)于Laravel相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Laravel框架入門與進(jìn)階教程》、《php優(yōu)秀開發(fā)框架總結(jié)》、《php面向?qū)ο蟪绦蛟O(shè)計入門教程》、《php+mysql數(shù)據(jù)庫操作入門教程》及《php常見數(shù)據(jù)庫操作技巧匯總

希望本文所述對大家基于Laravel框架的PHP程序設(shè)計有所幫助。

相關(guān)文章

  • 詳解php中生成標(biāo)準(zhǔn)uuid(guid)的方法

    詳解php中生成標(biāo)準(zhǔn)uuid(guid)的方法

    這篇文章主要介紹了php中生成標(biāo)準(zhǔn)uuid(guid)的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • ThinkPHP的I方法使用詳解

    ThinkPHP的I方法使用詳解

    ThinkPHP的I方法是眾多單字母函數(shù)中的新成員,主要用于更加方便和安全的獲取系統(tǒng)輸入變量,可以用于任何地方。這篇文章主要介紹了ThinkPHP的I方法,需要的朋友可以參考下
    2014-06-06
  • php實現(xiàn)aes加密類分享

    php實現(xiàn)aes加密類分享

    這篇文章主要介紹了php實現(xiàn)的aes加密類,代碼中有使用方法,需要的朋友可以參考下
    2014-02-02
  • Laravel 5 框架入門(四)完結(jié)篇

    Laravel 5 框架入門(四)完結(jié)篇

    本文是本系列教程的完結(jié)篇,我們將一起給 Page 加入評論功能,讓游客在前臺頁面可以查看、提交、回復(fù)評論,同時我們將在后臺完善評論管理功能,可以刪除、編輯評論。
    2015-04-04
  • 深入淺析php中sprintf與printf函數(shù)的用法及區(qū)別

    深入淺析php中sprintf與printf函數(shù)的用法及區(qū)別

    這篇文章主要介紹了php中sprintf與printf函數(shù)的用法及區(qū)別,涉及到printf函數(shù)、sprintf函數(shù)相關(guān)資料,需要的朋友可以參考下
    2016-01-01
  • 一個非常完美的讀寫ini格式的PHP配置類分享

    一個非常完美的讀寫ini格式的PHP配置類分享

    這篇文章主要介紹了一個非常完美的讀寫ini格式的PHP配置類分享,本文給出類代碼、使用例子和配置文件例子,需要的朋友可以參考下
    2015-02-02
  • 采用thinkphp自帶方法生成靜態(tài)html文件詳解

    采用thinkphp自帶方法生成靜態(tài)html文件詳解

    thinkphp本身自帶了一個有效的生成靜態(tài)頁的方法,這篇文章主要介紹了采用thinkphp自帶方法生成靜態(tài)html文件
    2014-06-06
  • PHP如何獲取訪問者的IP地址和歸屬地方式詳解

    PHP如何獲取訪問者的IP地址和歸屬地方式詳解

    在用PHP開發(fā)程序的時候,很多時候我們需要獲取訪問者的一些關(guān)鍵信息,比如訪問者的IP地址或者訪問者來自哪里(IP歸屬地),也便于我們對網(wǎng)站進(jìn)行一些內(nèi)容的限制或者功能的補充完善等等,本文就來教大家用PHP如何獲取訪問者的IP地址和歸屬地
    2023-10-10
  • php使用異或?qū)崿F(xiàn)的加密解密實例

    php使用異或?qū)崿F(xiàn)的加密解密實例

    字符串的加密解密在數(shù)據(jù)的處理中應(yīng)該是經(jīng)常使用的,但MD5加密是不可逆的,所以自能自己動手寫一個加密解密函數(shù),思路很。網(wǎng)上看了幾個用異或?qū)崿F(xiàn)的思路,看懂后就自己寫了一下。異或的思路很簡單,用個公示簡單的表示下吧
    2013-09-09
  • PHP實現(xiàn)抽獎功能實例代碼

    PHP實現(xiàn)抽獎功能實例代碼

    這篇文章主要介紹了PHP如何實現(xiàn)抽獎功能,文中示例代碼非常詳細(xì),供大家參考和學(xué)習(xí),感興趣的朋友可以了解下
    2020-06-06

最新評論