选择语言 :

 Module_Database_QueryBuilder::recovery_last_builder

恢复最后查询或reset时的Builder数据

此方法等同于在执行查询前先获取 $builder = $db->get_builder(); 然后执行SQL完毕后把原先的builder重新设置 $db->set_builder($builder);

 $db->from('mydb')->where('id', 1)->get()->as_array();    // 执行查询
 $db->recovery_last_builder();                            // 恢复

等同于下面代码,但明显上面代码更优雅

 $db->from('mydb')->where('id', 1);

 $builder = $db->get_builder();      // 在执行前获取builder设置
 $db->get()->as_array();             // 执行查询
 $db->set_builder($builder);         // 将前面获取的builder重新复原

例子一

 $count = $db->from('mydb')->where('id', 10, '>')->count_records();
 // 在执行count_records()时,所有的builder数据将会被清空
 echo $db->last_query();   // SELECT COUNT(1) AS `total_row_count` FROM `mydb` WHERE `id` > '10'

 // 恢复builder
 $db->recovery_last_builder();
 $db->limit(20)->order_by('id', 'DESC')->get()->as_array();

 echo $db->last_query();   // SELECT * FROM `mydb` WHERE `id` > '10' ORDER BY `id` DESC LIMIT 10
Database Module_Database_QueryBuilder::recovery_last_builder( )
返回值
  • Database
File: ./modules/database/querybuilder.class.php
public function recovery_last_builder()
{
    if ($this->_builder_bak)
    {
        $this->_builder = $this->_builder_bak;
    }

    return $this;
}