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


Returning all rows from database in 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为空,则返回数据库中的所有行。。我也试过

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

试试这个:

    ...
    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));
    }
    ...

注意:

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();
}

这里,如果$sec_token和$email_id为null或"0",则查询您将获取所有记录。它会给出所有行,因为当"如果条件不满足,那么它会获取所有记录"时,请尝试它。还要检查您的会话是否启动,以及您的值是否正确设置。