检索CodeIgniter Activerecord中的where子句

时间:2011-06-01 15:55:08

标签: mysql codeigniter activerecord

有没有办法检索我在查询中添加的“where”子句? 我使用foreach语句在当前查询的where子句中添加我想要添加的列,但由于该子句可能为空(没有添加列,foreach中有0次迭代),查询将检索数据库中的所有记录因为没有限制在哪里。 当然我可以使用布尔变量来知道foreach至少进行了1次迭代,但我想知道是否有可能检索与我正在进行的查询相关的信息。 对我正在使用的代码进行排序:

foreach($columns as $column => $value){
    if($column!=''){
        $this->db->where($column,$value);
    }
}
$this->db->get('mytable');

一些解释:

如果$ column是一个emptry字符串,我不会将它添加到查询中。

$ columns var是一个对象(stdClass)。

因此,如果查询中没有“where”语句,我不想​​使用$ this-> db-> get()检索任何信息。我正在寻找的是像

if( ! empty($this->db->where_clauses()))
    $this->db->get('mytable');

有类似的东西吗?

感谢。

2 个答案:

答案 0 :(得分:2)

不直接:它有点像黑客,但你可以这样做:

if( ! empty($this->db->ar_where))

试一试,看看它是否有效。

答案 1 :(得分:-1)

foreach($columns as $column => $value){
    if($column!=''){
        $this->db->where($column,$value);
    }
}

if (count($columns) > 0)
$this->db->get('mytable');