Created
August 14, 2019 18:05
-
-
Save brianwebb01/feb20da82787ab936c67ef18e7a14d33 to your computer and use it in GitHub Desktop.
Log full DB SQL in Laravel
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
//put this in app service provider | |
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); | |
Log::debug($query); | |
} | |
); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment