信息资讯综合思念体

【常用函数】Laravel SQL 日志转换为字符串 函数

Laravel的SQL日志是一个数组类型的内容

格式大概是:

$sqlLogPayload = [
    'query' => 'sql语句',
    'bindings'=> [
        '参数A',
        '参数B'
    ],
    'time' => '0.23'
];



/**
 * SQL 日志转换为字符串 
 * 
 * @param  string $sql      SQL预处理
 * @param  string $bindings 绑定的参数
 * @param  string $time     执行时间
 * @return string           返回一个解析完成的sql (带时间)
 */
function laravel_sql_parse($sql, $bindings, $time = null)
{
    $bindings = array_map(function($bind){
        return is_numeric($bind) ? $bind : "'{$bind}'";
    }, $bindings);

    array_unshift($bindings, str_replace(['%', '?'], ['%%', '%s'], $sql));

    $sql_str = count($bindings) == 1 ? current($bindings) : call_user_func_array("sprintf", $bindings);

    return $sql_str . ( is_null($time) ? "" : " [{$time}ms]");
}


  • 评论列表:

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

Powered By Z-BlogPHP 1.5.1 Zero Theme By 爱墙纸

百度资讯综合思念体对有机生命接触用人形终端界面 那就是
晋ICP备15000230号