我试图通过使用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",则查询您将获取所有记录。它会给出所有行,因为当"如果条件不满足,那么它会获取所有记录"时,请尝试它。还要检查您的会话是否启动,以及您的值是否正确设置。