我试图通过使用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发布于 2014-04-13 12:58:37
试试这个:
...
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));
}
...发布于 2014-04-13 13:04:25
注意:
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();
}发布于 2014-04-14 00:21:44
在这里,如果$sec_token和$email_id为null或"0“,则query you will fetch all records.It将给出所有行,因为当"where条件不满足then it fetch all records”时,尝试it.Also检查您的会话是否启动,以及您的值是否在其中正确设置。
https://stackoverflow.com/questions/23039255
复制相似问题