CodeIgniter 中国开发者社区诚征热爱 CI 的版主

查看完整版本: 通过Active Record 类执行的语句,怎么显示最后的SQL语句.

riyao 2008-8-24 18:07

通过Active Record 类执行的语句,怎么显示最后的SQL语句.

比如:
$query = $this->db->get('mytable');
怎么让它显示 SELECT * FROM mytable

谢谢了..

itlong 2008-8-25 17:50

我是有两个办法看sql的。
第一,看你的log,看它执行了什么sql.
第二,这个办法是有点变态,要求是对CI核心代码有一定的理解的基础上。
我是这么做的。
你先找到system/database/DB_driver.php
我们先为CI_DB_driver类加一个属性:
class CI_DB_driver{
....
var $sqlstr;

我们再找到function query()
这个函数的最开始处加下这样的一句话:
        $this->sqlstr = $sql;

最后,我们为CI_DB_driver类添加一个方法,位置不限,getSql()
function getSql()
{
     return $this->sqlstr;
}


这样,我们在controller里就可以这样调用了:

$query = $this->db->get('mytable');
//to do something....

echo $this->db->getSql();

这样就可以看到你的sql语句了。

Hex 2008-8-26 00:14

$this->db->last_query();

riyao 2008-8-26 08:34

谢谢楼上的...还有楼上的楼上..
页: [1]
查看完整版本: 通过Active Record 类执行的语句,怎么显示最后的SQL语句.