2013-03-14 51 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