Php 从Codeigniter db类编译WHERE语句

Php 从Codeigniter db类编译WHERE语句,php,codeigniter,Php,Codeigniter,目前正在进行一个带有几个不同数据库功能的小项目。我正试图找到一种方法来获取编译后的Codeigniter WHERE语句 // Database GET function function dbGetRow($id, $field) { $this->db->select($field)->from('friends'); $query = $this->db->get(); return $query->row_array(); }

目前正在进行一个带有几个不同数据库功能的小项目。我正试图找到一种方法来获取编译后的Codeigniter WHERE语句

// Database GET function
function dbGetRow($id, $field)
{
    $this->db->select($field)->from('friends');
    $query = $this->db->get();
    return $query->row_array();
}

// Calling the function
$this->db->where('id', 2);
$value = parent::dbGetRow(null 'id');
我想弄清楚的是,在执行查询之前,如何在dbGetRow()函数中获取已编译的WHERE语句。

实现了这一点

唯一的解决方案是使用$this->db->get_compiled_select()


下列方法有用吗?-<代码>echo$this->db->get_compiled_select()我已经知道$this->db->get_compiled_select();但是,这确实会产生SELECT*‘这里的语句’;我希望只得到没有SELECT*的语句,但我想我会直接替换它。
private function hasInlineQuery()
{
    $string = $this->db->get_compiled_select();
    $string = str_ireplace('SELECT *', '', $string);

    return $string ? true : false;
}