2016-03-09 4 views
0

Что случилось с этим кодом, почему он возвращает num_rows == 0.CodeIgniter некорректный вывод num_rows == 1

function validate() 
    { 

     $this->db->where('username', $this->input->post('username')); 
     $this->db->where('userpassword', md5($this->input->post('password'))); 
     $query = $this->db->get('tbluser'); 


     if($query->num_rows == 1) 
     { 
      return true; 
     } 


    } 

вот мой скриншот базы данных

enter image description here

Также Скриншот моего запроса выполнения в MySQL

enter image description here

+1

после 'получить()' 'использовать эхо $ this-> db-> last_query()', чтобы проверить, что SQL запрос казнены. – Yash

+0

где я должен это положить? Я разделил его на мой взгляд? может ли он отображаться на моей странице просмотра? –

+0

Вы можете использовать только для тестирования. после 'get()' добавить его и поместить 'exit;'. – Yash

ответ

4

Вы забыли (). Он должен be $query->num_rows()

 if($query->num_rows() == 1) 
     { 
      return true; 
     } 

Причина, что возвращается 0, потому что $query->num_rows не существует (, что приводит к ложным или 0).

+0

Сэр спасибо. , , :) –

+0

Добро пожаловать. Добро пожаловать в Stack Overflow. :) – rmondesilva

0

попробовать это

$query = $this->db->get('tbluser')->result_array(); 


if($query->num_rows() == 1) 
     { 
      return true; 
     } 
-2

Попробуйте что-то вроде этого:

$query = $this -> db 
      -> select('*') 
      -> where(
       array(
        'username'=> $this->input->post('username') 
        'userpassword'=> md5($this->input->post('password') 
       ) 
      ) 
      -> get('tbluser'); 
Смежные вопросы