Codeigniter调用未定义的方法CI_DB_mysqli_result :: num_row()

时间:2015-07-20 17:37:47

标签: php codeigniter

我将此代码用于login_model:

  • 类Login_model扩展了CI_Model {

    function __construct(){
        parent:: __construct();
    }
    
    function check(){
        $username = $this->input->post('username',true);
        $password = $this->input->post('password',true);
        $remember = $this->input->post('remember',true);
    
    
        /*
        $this->db->select('username','username');
        $this->db->select('password','password');
        $this->db->where('username',"$username");
        $this->db->where('password',md5($password));
        $this->db->from('user');
        $this->db->limit(1);
        $is = $this->db->count_all_results();
        */
        $user = $this->db->get_where ('user',array('username'=>$username,'password'=>md5($password)));
        $is = $user->num_row();
    
        if($is>0){
    
            $id = $user->row(0)->id;
            $data_session=array(
                'username'=>'$username',
                'login'=> true,
                'id'=>$id
            );
            $this->session->set_userdata($data_session);
    
            if($remember == 1){
               $login_text= $username.'_isLogin_'. $id;
                $this->load->library('encrypt');
                $cookie_value = $this->encrypt->encode($login_text,ENCRYPT_KEY);
    
               $data_cookie=array(
                   'name'=>'Ahmadreza',
                   'value'=>$cookie_value,
                   'expire'=>time()+60*60*24*365
               );
                $this->input->set_cookie($data_cookie);
            }
            redirect('post/index');
        }else{
            redirect('login/index');
        }
    
    
    }
    

    }

  • 但要表明这一点! error 现在我该如何解决这个问题。

    谢谢。

    错误图片:http://i.stack.imgur.com/MPQLX.png

    3 个答案:

    答案 0 :(得分:4)

    num_rows()而不是num_row()

    替换,

    $is = $user->num_row();
    

    $is = $user->num_rows();
    

    答案 1 :(得分:1)

    Codeigniter中没有任何函数调用num_row();

    正确的方法是num_rows(); num_rows() Function in Codeigniter

    所以最终的Well-form代码是

    $is = $user->num_rows();
    
      

    注意:
      并非所有数据库驱动程序都具有获取结果集的总行数的本机方法。在这种情况下,预取所有数据并在结果数组上手动调用count()以获得相同的结果。

    答案 2 :(得分:0)

    检查Codeginiter documentaion

    其$ user-> num_rows();