Position actuelle: Accueil> Derniers articles> Méthode d'implémentation pour obtenir la dernière instruction SQL d'exécution dans Laravel

Méthode d'implémentation pour obtenir la dernière instruction SQL d'exécution dans Laravel

gitbox 2025-06-27

Préface

Laravel est un cadre de développement PHP populaire, particulièrement adapté à la création d'horizons Web et d'API. Dans le développement quotidien, nous devons souvent ajouter, supprimer, modifier et vérifier la base de données. À des fins de débogage ou d'analyse des performances, les développeurs doivent parfois afficher la dernière instruction SQL exécutée dans l'application. Cet article expliquera comment mettre en œuvre cette exigence dans Laravel.

Idées de mise en œuvre

Pour obtenir la dernière instruction SQL exécutée, elle s'appuie principalement sur la méthode DB :: écouter () fournie par Laravel, qui nous permet de capturer des informations pertinentes chaque fois que nous exécutons une requête de base de données. De plus, combiné avec le système de journalisation de Laravel, nous pouvons enregistrer ces instructions SQL pour une analyse ultérieure.

Utilisation de journaux PDO et Laravel

L'accès à la base de données sous-jacent de Laravel se fait généralement par le biais d'extensions de PDO de PHP. PDO est une couche d'abstraction de base de données qui prend en charge plusieurs types de bases de données, telles que MySQL, PostgreSQL, SQLite, etc. Avec le système de journalisation de Laravel, nous pouvons facilement enregistrer les instructions SQL exécutées.

Implémentation de code

Ce qui suit est le code spécifique pour écouter l'exécution de SQL à l'aide de la façade DB de Laravel:

 
use Illuminate\Support\Facades\Log;
use Illuminate\Support\Facades\DB;

DB::listen(function ($query) {
    Log::info($query->sql);
});

La logique d'implémentation de ce code est la suivante:

  • Enregistrez une fonction d'écoute via DB :: écouter () .
  • Chaque fois que SQL est exécuté, la fonction de rappel sera déclenchée et $ Query-> SQL contient la chaîne SQL exécutée.
  • Utilisez le journal des outils de journalisation de Laravel :: info () pour écrire SQL pour enregistrer des fichiers pour une visualisation plus facile.

Par défaut, les journaux seront enregistrés dans le fichier Storage / Logs / Laravel.log .

Recommandations pour une utilisation

Il est recommandé d'utiliser cette méthode dans un environnement de développement ou de débogage pour capturer les requêtes SQL pour éviter d'enregistrer tous les SQL dans un environnement de production, qui peut présenter un risque de frais généraux de performance ou de fuite d'informations. Vous pouvez également contrôler de manière flexible la fonction de surveillance en jugeant l'environnement actuel en fonction des besoins réels.

Résumer

Grâce à cet article, nous apprenons à écouter et à enregistrer la dernière déclaration SQL exécutée à Laravel. Cela joue un rôle important dans le débogage des opérations de la base de données et l'optimisation de l'efficacité des requêtes. Avec la méthode DB :: Écouter et le système de journalisation fourni par Laravel, les développeurs peuvent facilement suivre l'exécution de SQL.