CI查看当前页面执行的所有sql语句

3 篇文章 0 订阅

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
)

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值