有没有办法检索我在查询中添加的"where“子句?我使用foreach语句为当前查询添加我想要在where子句中添加的列,但是,由于该子句可能为空(没有添加列,foreach中的迭代次数为0),因此查询将检索数据库中的所有记录,因为没有进行任何限制。当然,我可以使用布尔变量来知道foreach是否至少进行了一次迭代,但我想知道是否可以检索与我正在进行的查询相关的信息。对我使用的代码进行排序:
foreach($columns as $column => $value){
    if($column!=''){
        $this->db->where($column,$value);
    }
}
$this->db->get('mytable');一些解释:
如果$column是一个空字符串,我不会将其添加到查询中。
$columns变量是一个对象(stdClass)。
因此,如果查询中没有"where“语句,我就不想用$this->db->get()检索任何信息。我要找的东西是
if( ! empty($this->db->where_clauses()))
    $this->db->get('mytable');有没有类似的东西?
谢谢。
发布于 2011-06-02 00:13:58
不是直接的:这有点像黑客,但你可以这样做:
if( ! empty($this->db->ar_where))试一试,看看它是否有效。
发布于 2011-06-02 00:02:42
foreach($columns as $column => $value){
    if($column!=''){
        $this->db->where($column,$value);
    }
}
if (count($columns) > 0)
$this->db->get('mytable');https://stackoverflow.com/questions/6204058
复制相似问题