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