Thinkphp3.2.3在SQL执行错误时查看SQL语句

2017年2月12日 由 Creater 留言 »

通常使用 getLastSql() 方法来查看刚执行过的SQL,但有时SQL语法错误,无法使用 getLastSql() 方法。

可以在SQL执行前将它打印出来

拼装出最后可执行SQL的位置在

ThinkPHP/Library/Think/Db/Driver.class.php

public function buildSelectSql($options=array()) {
    if(isset($options['page'])) {
        // 根据页数计算limit
        list($page,$listRows)   =   $options['page'];
        $page    =  $page>0 ? $page : 1;
        $listRows=  $listRows>0 ? $listRows : (is_numeric($options['limit'])?$options['limit']:20);
        $offset  =  $listRows*($page-1);
        $options['limit'] =  $offset.','.$listRows;
    }
    $sql  =   $this->parseSql($this->selectSql,$options);
    return $sql;
}

可以在return 前输出 $sql 变量或写入日志。

广告位

发表评论

你必须 登陆 方可发表评论.