簡體   English   中英

從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為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

嘗試這個:

    ...

    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”,則查詢將獲取所有記錄。它將給出所有行,因為當“不滿足條件的情況下它將獲取所有記錄”進行嘗試。還要檢查會話是否啟動並且您的值已正確設置或未正確設置。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM