row() return 特定字段为空

row() return null for specific field

我正在尝试将特定字段从记录保存到会话中,以用于我的用户角色。这里的问题是除了 nama.

我不能接受任何其他领域

controller/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');
    }

model/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"]=> string(4) "test" }

如果我改变 return $result->nama; $result->用户名;我得到错误:未定义 属性: stdClass::$username 即使我确定 200% table 中有用户名字段,并直接尝试查询。

你的select语句有误,一定是

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

您将每一列分开,这是不正确的,所有列都在一个字符串中,这就是为什么它告诉您它未定义的原因,因为您发送的唯一列是 nama,而您将用户名作为第二列发送select.

的参数

active record 上的 link CodeIgniter 2.2.0