1

我正在使用 codeigniter 从数据库中获取单个结果,如下所示:

$user = $this->db->query("SELECT * FROM users LIMIT 1");

然后我得到返回的对象并通过它循环,这样:

foreach ($user->result() as $row) { ... }

可以想象,使用循环没有意义,因为只有一个结果。有没有办法在不循环的情况下获取用户参数?这一行中的一些东西:

echo $user['name'];

提前致谢。

4

4 回答 4

9
$user = $this->db->query("SELECT * FROM users LIMIT 1")->row();

将其作为对象 ( echo $user->name;)

$user = $this->db->query("SELECT * FROM users LIMIT 1")->row_array();

因为有是作为一个数组(echo $user['name'];);

$user = $this->db->limit(1)->get('users')->row(); //or ->row_array();

使用增强现实;

$row = $user->first_row();

从结果集 ($this->db->result()) 中取出第一行,作为对象(默认);

$row = $user->first_row('array');

从结果集中取出第一行,作为数组;

$row = $user->row_array(1);

返回一个特定的行(首先,在这种情况下。只需传递<N>行的)。也适用于$user->row(1);

于 2013-02-09T13:36:37.960 回答
1

这将是:

$user = $this->db->query("SELECT * FROM users LIMIT 1")->row_array();

更多细节在这里:http ://ellislab.com/codeigniter/user-guide/database/results.html

于 2013-02-09T13:33:40.840 回答
0

做这样的事情

    //in the model
    $query = $this->db->query("your query");

$row = $query->row();

    if (isset($row))
return $row;
}else{
return false;
}

然后像这样回显你的结果

echo $row->username;

如果你想将它传递给视图

//in the controller

$this->load->model('somemodel');
        $hm=$this->somemodel->somemethod();
        $data['query']=$hm;
    $this->load->view('path/to/view',$data);

然后以同样的方式回显

echo $row->username;
于 2016-04-29T10:22:46.670 回答
-1

假设例如您的模型功能是这样的......

 public function get_users()
 {

  $query = "Select * from users limit 1";

  $res=$this->db->query($query);

    if($res->num_rows()>0){
        return $res->result("array");
    }
    return array();
 }

假设您在控制器函数中调用此模型,如下所示

    $users =  $this->model_file->get_users();

然后你可以像这样回声echo $users[0]['user_name'];

于 2013-02-09T13:36:18.717 回答