我正在使用 codeigniter 从数据库中获取单个结果,如下所示:
$user = $this->db->query("SELECT * FROM users LIMIT 1");
然后我得到返回的对象并通过它循环,这样:
foreach ($user->result() as $row) { ... }
可以想象,使用循环没有意义,因为只有一个结果。有没有办法在不循环的情况下获取用户参数?这一行中的一些东西:
echo $user['name'];
提前致谢。
我正在使用 codeigniter 从数据库中获取单个结果,如下所示:
$user = $this->db->query("SELECT * FROM users LIMIT 1");
然后我得到返回的对象并通过它循环,这样:
foreach ($user->result() as $row) { ... }
可以想象,使用循环没有意义,因为只有一个结果。有没有办法在不循环的情况下获取用户参数?这一行中的一些东西:
echo $user['name'];
提前致谢。
$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);
这将是:
$user = $this->db->query("SELECT * FROM users LIMIT 1")->row_array();
更多细节在这里:http ://ellislab.com/codeigniter/user-guide/database/results.html
做这样的事情
//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;
假设例如您的模型功能是这样的......
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'];