2013-03-14 41 views
0

我想从数据库中获取一些匹配用户名和密码的记录。我用下面的代码:codeigniter选择语句不返回任何东西

$data = array(
    'username' => $username , 
    'password' => $password 
);  
//show_error('Password: ' . $password . " Username: " . $username); 
/*Query database for details matching username & password*/ 
$this->db->select('*'); 
$this->db->from('users'); 
$this->db->where('username', $username); 
$this->db->where('password', $password); 
$result = $this->db->get(); 
$queryResult; 
//show_error('ResultSet Rows: ' . $result->num_rows()); 
if($result->num_rows() > 0) 
{ 
    $queryResult = $result->result_array(); 
}else{ 
    $queryResult = "Error retrieving data from table"; 
} 

return $queryResult; 

当num_rows()函数输出时,它显示0.这只能意味着没有被选中。查询有问题吗?

Regards,

P.S.我使用show_error()函数来跟踪变量的值

回答

1

为了测试使用本

$data = array(
    'username' => $username , 
    'password' => $password 
);  


$this->db->select('*'); 
$this->db->from('users'); 
$this->db->where('username', $username); 
$this->db->where('password', $password); 
$result = $this->db->get()->row(); 

echo '<pre>'; 
print_R($result); 

而且多使用$this->db->last_query() 将输出最后运行的查询,你可以在phpMyAdmin复制和测试

+0

感谢您的代码帮助我们更好地理解原因。我使用encrypt-> encode()codeigniter函数来加密我的密码。当我从其中()工作的地方删除密码。这意味着该函数始终不会生成相同的输出。 – 2013-03-14 06:47:24

+0

不客气。我很惊讶,如何选择没有工作因为没有人抱怨过它。很高兴你找到了解决方案! – 2013-03-14 06:49:32