Thinkphp 5 调试执行的SQL语句 tp5的打印最后一条sql


在模型操作中 ,为了更好的查明错误,经常需要查看下最近使用的SQL语句,我们可以用getLastsql方法来输出上次执行的sql语句。例如:

User::get(1);
echo User::getLastSql();

输出结果是 SELECT * FROM 'think_user' WHERE 'id' = '1'

也可以使用fetchSql方法直接返回当前的查询SQL而不执行,例如:

echo User::fetchSql()->find(1);

输出的结果是一样的。

getLastSql方法只能获取最后执行的SQL记录,如果需要了解更多的SQL日志,可以通过查看当前的Trace信息或者日志文件。

tp5的打印最后一条sql

//以下都需要需要引用类库
use think\Db;

Logs("第".__LINE__."行.loging/index","loging","loging");
Logs(db("lb_admin_mechanism")->getLastSql(),"loging","loging");

Db::name('report')->fetchSql(true)->insert($report)强制打印
//打印语句
dump( Db::table('table_name')->getLastSql());
dump( Db::getLastSql());


/**创建日志文件
 * $content   @array/@string  要记录的数据
 * $dir       @string   文件夹名字
 * $file      @string  日志文件名字
 * author haima
 */
function Logs($content,$dir,$file='')
{
    if(empty($dir)) die("文件夹名不可为空");
    $file_path = ROOT_PATH . 'Logs/'.$dir;
    if(!is_dir($file_path)){
        mkdir($file_path, 0777, true);
    }
    file_put_contents($file_path.'/'. $file . date('Ymd',time()) . '.log', date('Y-m-d H:i:s',time()) .' ' . var_export($content,true) . "\r\n", FILE_APPEND);
}



免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM