row()为特定字段

时间:2016-03-22 22:32:20

标签: database codeigniter session model-view-controller stdclass

我试图将特定字段从记录保存到会话中,用于我的用户角色。这里的问题是除了 nama 之外,我不能接受任何其他字段。

控制器/ verify_login

public function index(){
    $this->load->model('verify_login_model');
    $username = $this->input->post('username');
    $password = $this->input->post('password');
    $result = $this->verify_login_model->verify($username, $password);
    if($result == $username) {



        $name = $this->verify_login_model->getinfo($username);
        $this->session->set_userdata('logged_in', TRUE);
        $this->session->set_userdata('username', $username);
        $this->session->set_userdata('name', $name);

        $this->load->view('home_view');






    } else {
        redirect('login');
    }

模型/ verify_login_model

function verify($username, $password){
    $this->db->select('username', 'password');
    $this->db->from('tb_user');
    $this->db->where('username', $username);
    $this->db->where('password', MD5($password));
    $this->db->limit(1);

    $query = $this->db->get();
    if($query->num_rows()==1) {
        return $username;
    } else {
        return false;
    }
}

function getinfo($username) {
    $this->db->select('nama', 'username');
    $this->db->from('tb_userInfo');
    $this->db->where('username', $username);
    $this->db->limit(1);

    $query = $this->db->get();
    if($query->num_rows()==1) {

        $result = $query->row();

        return $result->nama;



    } else {
        return false;
    }
}

视图

<?php echo $this->session->userdata['name']?>

var_dump($ result):object(stdClass)#22(1){[“nama”] =&gt; string(4)“test”}

如果我更改了返回$ result-&gt; nama;到$ result-&gt;用户名;我得到错误:未定义的属性:stdClass :: $ username即使你确定表中有200%的用户名字段,并直接尝试了查询。

1 个答案:

答案 0 :(得分:1)

你的select语句中有一个错误,它必须是

$this->db->select('nama,username');

你正在分离每一列,这是不正确的,所有的列都在一个字符串中,这就是为什么它告诉你它未定义的原因,因为你发送的唯一列是nama,你发送的用户名是第二个参数选择。

以下是 CodeIgniter 2.2.0的active record链接