Heim > Backend-Entwicklung > PHP-Tutorial > Über Laravel5. So drucken Sie die ausgeführte SQL-Anweisung aus

Über Laravel5. So drucken Sie die ausgeführte SQL-Anweisung aus

不言
Freigeben: 2023-03-31 21:44:02
Original
3004 Leute haben es durchsucht

Dieser Artikel stellt hauptsächlich die Methode von Laravel5.* zum Ausdrucken der ausgeführten SQL-Anweisung vor. Sie hat einen bestimmten Referenzwert.

Dieser Artikel stellt die Methode von Laravel5.* zum Drucken vor out. Die Methode zum Ausführen der SQL-Anweisung wird wie folgt für alle freigegeben:

Öffnen Sie appProvidersAppServiceProvider.PHP und fügen Sie den folgenden Inhalt in die Boot-Methode ein

Versionen unter 5.2

// 先引入DB 
use DB;
// 或者直接使用 \DB::
 DB::listen(function($sql, $bindings, $time) {
        dump($sql);
      });
Nach dem Login kopieren

Version 5.2 und höher

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);
  }
);
Nach dem Login kopieren

Das Obige ist der gesamte Inhalt dieses Artikels, Ich hoffe, dass es für alle beim Lernen nützlich sein wird. Bitte achten Sie auf die PHP-Chinesisch-Website für weitere verwandte Inhalte!

Verwandte Empfehlungen:

Bestanden Laravel „Standard“-Entwicklung der SMS-Verifizierungscode-Sendefunktion

Erfahren Sie, wie Sie Arrays zur Ansicht im Laravel5-Framework übertragen

Erlernen der grundlegenden Prozesse von Modellen, Controllern und Ansichten des Laravel 5-Frameworks

Das obige ist der detaillierte Inhalt vonÜber Laravel5. So drucken Sie die ausgeführte SQL-Anweisung aus. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage