Laravel5:sql语句的正确打印方式
来源:互联网 发布:mac eclipse改java版本 编辑:程序博客网 时间:2024/06/04 19:22
Larave5
用DB自带的getQueryLog方法直接打印:
DB::connection()->enableQueryLog(); // 开启QueryLog \App\User::find(1); dump(DB::getQueryLog());
得到的结果语句与参数是分开的,非常不方便验证
[ 0 => array:3 [▼ "query" => "select * from `mall_users` where `mall_users`.`id` = ? limit 1" "bindings" => array:1 [▼ 0 => 1 ] "time" => 11.87 ]]
若要打印出完整的sql语句,可将以下代码复制到AppServiceProvider中的boot方法中:
\DB::listen( function ($sql) { 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); });
日志在storage/log/xxx_query.log
,妈妈再也不用担心我的sql语句
阅读全文
0 0
- Laravel5:sql语句的正确打印方式
- Laravel5.* 打印出执行的sql语句
- laravel5.2 打印sql语句
- Laravel5.3 注册监听器--实时打印SQL语句
- Laravel5.3 注册监听器--实时打印SQL语句
- mybatis的Sql语句打印
- C++ if 语句的正确书写方式
- sql 正确提取变量数据的方式
- Mysql导出sql脚本的正确方式!
- laravel 打印sql 语句 打印sql语句
- 打印出Ibatis最终的SQL语句
- 打印Ibatis最终的SQL语句
- 只打印IBatis的sql语句
- Ibatis 后台打印完整的sql语句
- magento中打印运行的SQL语句
- 打印出Ibatis最终的SQL语句
- 打印出Ibatis最终的SQL语句
- 只打印IBatis的sql语句
- mac下修改mysql数据库的默认编码为utf-8
- protoc 命令参数
- 判断一个对象是否为空
- 如何自学机器学习
- MySQL时间戳和日期相互转化
- Laravel5:sql语句的正确打印方式
- 神奇密码锁
- WSDL 详解
- 编程思想之多线程与多进程(1)——以操作系统的角度述说线程与进程
- cURL error 60: SSL certificate problem...
- MySQL中的while循环和repeat循环的区别
- 二维码可以存储的数据类型
- Codevs 1851 越狱
- 二分+容斥原理-HDU3388