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

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

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

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

利用監(jiān)聽(tīng)器進(jìn)行sql語(yǔ)句記錄

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

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

2、監(jiān)聽(tīng)器類(lèi)代碼

./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定義是依賴(lài)于中間件記錄操作日志代碼
    $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)聽(tīng)器

./app/Providers/EventServiceProvider.php

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

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

相關(guān)文章:

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

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

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

相關(guān)文章

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

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

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

    ThinkPHP的I方法使用詳解

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

    php實(shí)現(xiàn)aes加密類(lèi)分享

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

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

    本文是本系列教程的完結(jié)篇,我們將一起給 Page 加入評(píng)論功能,讓游客在前臺(tái)頁(yè)面可以查看、提交、回復(fù)評(píng)論,同時(shí)我們將在后臺(tái)完善評(píng)論管理功能,可以刪除、編輯評(píng)論。
    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
  • 一個(gè)非常完美的讀寫(xiě)ini格式的PHP配置類(lèi)分享

    一個(gè)非常完美的讀寫(xiě)ini格式的PHP配置類(lèi)分享

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

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

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

    PHP如何獲取訪問(wèn)者的IP地址和歸屬地方式詳解

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

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

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

    PHP實(shí)現(xiàn)抽獎(jiǎng)功能實(shí)例代碼

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

最新評(píng)論