2016-05-30 49 views
0
public function email_check() 
    { 
     $this->form_validation->set_message('email_check', 'The %s '.$this->input->post('usr_email').' is already exist'); 
     $this->db->where('usr_email', $this->input->post('usr_email')); 
     $query = $this->db->get('users'); 
     if ($query->num_rows()>0) 
      return false; 
     else 
      return true;  


    } 

(!) Fatal error: Call to a member function num_rows() on a non-object in C:\wamp\www\application\controllers\users.php on line 264致命错误呼叫号码功能节数行

调用堆栈

# Time Memory Function Location 
1 0.0005 266584 {main}() ..\index.php:0 
2 0.0015 324704 require_once('C:\wamp\www\\system\core\CodeIgniter.php') ..\index.php:202 
3 0.0440 4030256 call_user_func_array:{C:\wamp\www/\system\core\CodeIgniter.php:359} () ..\CodeIgniter.php:359 
4 0.0440 4031120 Users->save_registration() ..\CodeIgniter.php:359 
5 0.0440 4044000 CI_Form_validation->run() ..\users.php:302 
6 0.0450 4056264 CI_Form_validation->_execute() ..\Form_validation.php:341 
7 0.0450 4057600 Users->email_check() ..\Form_validation.php:593 
+0

检查这个http://stackoverflow.com/questions/20751899/call-to-a-member-function-num-rows-on-a-non-object –

+0

@kiran这有没有关系你的链接,因为他根本不使用结果... – sintakonte

+1

你能解释一下吗? –

回答

0

如果你想为唯一的电子邮件地址做验证。做以下事情

$this->form_validation->set_rules('email', 'email', 'required|is_unique[tablename.fieldname]'); 
+0

你甚至读过这个问题吗? – sintakonte

+0

你可以通过追加'@'来隐藏你的命运错误。 @ $ query = $ this-> db-> get('users');如果(@ $ query-> num_rows()> 0) –

0

我认为你做错了。 试试这个。

$result = $this->db->where('usr_email', $this->input->post('usr_email')) 
        ->get('users') 
        ->num_rows(); 

if($result > 0) 
{ 
    return false; // value you want true or false 
} 
else 
{ 
    return true; // value you want true or false 
}