日期:2014-05-17  浏览次数:20706 次

获取Codeigniter数据库查询的记录里的对象的字段值
这是codeigniter里的一段程序
models层
function checkUser()
{
  $username = $this->input->post('username');
  $password = $this->input->post('password');
  $this->db->from('user');
  $this->db->where('username',$username);
  $this->db->where('password',$password);
  $query=$this->db->get();
  return $query->result();
}
controller层:

public function User_Login()
{
  $this->load->model('User','',TRUE);
  $error['info']="用户名或者密码错误!";
  $data['query']=$this->User->checkUser();
  $info=$this->User->checkUser();
  //打印出这里获得的用户信息
  print_r($info);
  if(!empty($data['query']))
  {
  $this->load->view('User/User_Index');
  }
  else
  {
  $this->load->view('index',$error);
  }
 }

这里有个知识点有点纠结!
注释出打印出来的信息为:
Array ( [0] => stdClass Object ( [id] => 1 [createdate] => 2011-03-29 14:32:18 [flag] => 1 [password] => 123 [username] => user1 [email] => ) )


现在我如何让获得这个数组的第一个对象里的id???


------解决方案--------------------
PHP code


// model
function checkUser()
{
    //省略其他代码
    //我的个人理解,这里只会返回一个对象,那么不如直接就返回一个内容
    $res_data = $query->result_array();
    // or $res_data = $query->result(); // 使用对象的话
    if ((count($res_data) == 1)) 
    {
        $res_data = reset($res_data);
    }

    return $res_data;
}

// controller
public function User_Login()
{
    $this->load->model('User','',TRUE);
    $error['info']="用户名或者密码错误!";
    $data['query']=$this->User->checkUser();
    $info=$this->User->checkUser();
    //打印出这里获得的用户信息
    print_r($info);

    // 对象的话 $info->id
    if(!empty($info['id']))
    {
        $this->load->view('User/User_Index');
    }
    else
    {
        $this->load->view('index',$error);
    }
}