从CodeIgniter中的数据库返回所有行

时间:2014-04-13 04:54:12

标签: php codeigniter

我试图从数据库中获取数据,并使用get_where对某些字段进行比较,但每次返回数据时,即使条件不满足...

我的代码是:

function check_sec_token()
{
    $sec_token=$this->session->userdata('sec_token');
    $email_id=$this->session->userdata('email_id');
    $query=$this->db->get_where($this->_registration,array('sec_token'=>$sec_token,'email_id'=>$email_id));
    $rows=$query->num_rows();
    return $query->result();
    if($rows<1)
    {
        return false;
    }
    else
    {
        return true;
    }
}

如果$sec_token$email_id为null,则返回数据库中的所有行。我也尝试了

function check_sec_token()
{
    $sec_token=$this->session->userdata('sec_token');
    $email_id=$this->session->userdata('email_id');
    $query=$this->db->get_where($this->_registration,array('sec_token'=>$sec_token,'email_id'=>$email_id));
    $rows=$query->num_rows();
    return $this->db->last_query();
    if($rows<1)
    {
        return false;
    }
    else
    {
        return true;
    }
}

显示查询

Select * from user_reg where sec_token=0 and email_id=0

3 个答案:

答案 0 :(得分:0)

试试这个:

    ...

    if ($sec_token == NULL && $email_id == NULL)
    {
        $query=$this->db->get($this->_registration);
    }
    else
    {
        $query=$this->db->get_where($this->_registration,array('sec_token'=>$sec_token,'email_id'=>$email_id));
    }

    ...

答案 1 :(得分:0)

注意:

return $query->result();

这段代码停止运行你的其余代码!并且不考虑行数的条件!

你可以这样做:

$query=$this->db->get_where($this->_registration,array('sec_token'=>$sec_token,'email_id'=>$email_id));
$rows=$query->num_rows();
if($rows<1)
{
    return false;
}
else
{
    return $query->result();
}

答案 2 :(得分:0)

这里,如果$ sec_token和$ email_id为空或&#34; 0&#34;然后查询你将获取所有记录。它将给出所有行,因为当&#34;其中条件不满足时,它获取所有记录&#34;尝试它。还要检查你的会话是否开始,你的值是否设置正确。