2

私はこの解決策を求めて地球の果てまで検索しましたが、他のすべての人にとって、修正は autoload.php でデータベース クラスを自動ロードすることでした。しかし、私はすでにこれを行っているので、他にどこに行くべきかわかりません。

コントローラ:

class Login extends CI_Controller{

function validate_credentials(){
    $this->load->model('membership_model');

    // call the member function from membership_model.php
    $q = $this->membership_model->validate();

    if($q){
        // user info is valid
        $data = array(
            'username' => $this->input->post('username'),
            'is_logged_in' => true
        );

        $this->session->set_userdata($data);
        redirect('site/members_area');

    }else{
        $this->index();
    }

    }
}

モデル:

class Membership_model extends CI_Model{

function validate(){
    // this method is called from the login.php controller
    $this->db->where('username', $this->input->post('username'));
    $this->db->where('password', md5($this->input->post('password')));
    $q = $this->db->get('members');


    if($q->num_rows == 1){

        return true;
    }

    return false;
    }
}

これについて何か助けてください、私はこれでぐるぐる回っています

次に考えたのは、ホスト サーバーで php.ini を構成して、mysql モジュールをロードする必要があるということですが、これには非常に驚きましたか?

明確にするために-行:

if($q->num_rows)

非オブジェクトのプロパティを参照しようとしていると言って、問題はありますか

4

3 に答える 3

2

実際

if($q->num_rows)

する必要があります

if($q->num_rows()) // It returns the number of rows returned by the query.

だからあなたが使うことができます

if($q->num_rows()) // In this case it'll be evaluated true if rows grater than 0 
{
    // code when rows returned
}
于 2012-08-14T09:35:46.700 に答える
1

num_rows は関数です。

if ($query->num_rows() > 0) {

}

だからあなたが必要です

if($q->num_rows() > 0) {
  return true;
}
于 2012-08-14T09:35:30.570 に答える
0

解決済み - データベースにユーザーを割り当てていなかったため、アクセスできませんでした。

安心

于 2012-08-14T12:24:27.887 に答える