[英]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.