欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

codeigniter -- 获取最后执行的sql语句 最近执行的sql 最后的sql 最近的sql 有大用

       echo $this->db->last_query();
       var_dump(
$this->db->last_query());

Returns the last query that was run (the query string, not the result). Example:

返回最后运行的查询(是查询语句,不是查询结果)

$str = $this->db->last_query();

来自  http://blog.163.com/wangkangming2008@126/blog/static/782779282010217105733412/


 

10 CI where数据库操作 以及查询最后一次执行的sql语句

 674人阅读 评论(0) 收藏 举报
 分类:
class Welcome extends CI_Controller {

   public function index()
   {
      /*$res=$this->db->select('id,nickname')//连贯操作
        ->from('qq')
            ->where('id >=',3)
            ->limit(2,3)//从第三条开始查询2
            ->order_by('id desc')
            ->get();//查询
        var_dump($res->result());
        //显示最后一条sql语句 !important,方便查找错误
       echo $this->db->last_query();
      */
     //  $res=$this->db->where("nickname","aa")->get("qq");//方法一
        $res=$this->db->where(array('nickname'=>'aa','id >'=>2))->get("qq");//方法二
          //显示最后一条sql语句 !important,方便查找错误
       echo $this->db->last_query();
   }
}
来自 http://blog.csdn.net/xiaomogg/article/details/45251951



通过Active Record 类执行的语句,怎么显示最后的SQL语句.
比如:
$query = $this->db->get('mytable');
怎么让它显示 SELECT * FROM mytable 

我是有两个办法看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语句了。



$this->db->last_query();


mageguoshi 发表于 2011-8-8 15:41 
哈哈 ,在国外的论坛上找到了,用下面的方法
$this->db->_compile_select();

来自 
http://codeigniter.org.cn/forums/thread-979-1-1.html

普通分类: