CI查看當前頁面執行的所有sql語句

CI框架中有一個查看最後一條sql執行的方法

/system/database/DB_driver.php 文件的1085行左右

public function last_query()
{
    return end($this->queries);
}

 有時需要查看一個頁面中執行的所有sql語句,這在優化時很有幫助。減少sql查詢次數,也是優化的一個方面,其實只要把返回語句的end()去掉就行了!在DB_driver.php中新增如下方法

public function total_query()
{	
    array_walk($this->queries, function(&$v, $k){
        $v = preg_replace('/\n/', ' ', $v) .' #query time:'. $this->query_times[$k] . ' sec';
    });
    return $this->queries;
}

在控制器需要的地方斷點執行

echo '<pre>';
print_r($this->sdb->total_query());die;

就能看到當前業務中在斷點前執行的所有sql語句以及各語句的執行時間!

Array
(
    [0] => SELECT `codes` FROM `advert` WHERE `id` = 16 #query time:0.00062799453735352 sec
    [1] => SELECT `id`, `name`, `classify`, IF(id > 127 and classify = 1, 'game', 'html') as gamedir FROM `game_list` WHERE `id` in (20,38,15,67) ORDER BY field(id, 20, 38, 15, 67) #query time:0.0010020732879639 sec
)

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章