从 Codeigniter db 类获取编译的 WHERE 语句

Posted

技术标签:

【中文标题】从 Codeigniter db 类获取编译的 WHERE 语句【英文标题】:Getting compiled WHERE statement from Codeigniter db class 【发布时间】:2018-12-24 09:24:32 【问题描述】:

目前正在从事一个具有几个不同数据库功能的小项目。我试图找出一种方法来获取编译的 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 语句。

【问题讨论】:

***.com/questions/6142099/… 以下有帮助吗? - echo $this->db->get_compiled_select(); 我已经知道 $this->db->get_compiled_select();但是这确实会产生 SELECT * 'statement here';我希望只得到不带 SELECT * 的语句,但我想我会去掉替换它。 【参考方案1】:

搞定了。

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

private function hasInlineQuery()

    $string = $this->db->get_compiled_select();
    $string = str_ireplace('SELECT *', '', $string);

    return $string ? true : false;

【讨论】:

以上是关于从 Codeigniter db 类获取编译的 WHERE 语句的主要内容,如果未能解决你的问题,请参考以下文章

使用 CodeIgniter 查询从同一列中选择多条记录

Codeigniter:从单列中获取所有值作为数组

Codeigniter Active Record 类插入

在codeigniter中获取两个日期范围之间的数据

如何使用Codeigniter从Join 2表中获取ID数据?

从函数中的查询中获取结果并计算 Codeigniter 中的 num_rows