我正在使用codeigniter,我已经创建了一个函数来返回用户名。这是代码:
$this->db->where('u_id', $id);
$query = $this->db->get('users');
$data = $query->result_array();
$string = $data->u_name.' '.$data->u_surname;
return $string;
当我使用此功能时,我收到此错误:
消息:尝试获取非对象的属性并调用该行 $ string = [...]
答案 0 :(得分:0)
使用foreach循环:
{{1}}
答案 1 :(得分:0)
您可以尝试这样做。在codeigniter中,row()
根据您在对象形式中的条件返回匹配的第一行。
$this->db->where('u_id', $id);
$query = $this->db->get('users');
$data = $query->row();//change here
$string = $data->u_name.' '.$data->u_surname;
//echo $string;
return $string;
了解更多信息,请参阅Codeigniter Result Sets
答案 2 :(得分:0)
尝试使用此代码返回
$this->db->select('*');
$this->db->from('users');
$this->db->where(array('u_id'=>$id));
$query=$this->db->get();
if($query->num_rows()()>0)
{
$data = $query->result();
return $data->u_name.' '.$data->u_surname;
}
答案 3 :(得分:0)
这是因为您选择为您查询生成结果的功能。
$data = $query->result_array();
result_array()返回数组中的结果,即使您只有一个结果,因此当您尝试使用$ data-> u_name时,您会遇到此错误,因为该数组没有该属性。
您可以对$ data执行foreach并执行逻辑或使用其他方法从查询中获取结果,例如$ query-> row_array();
查看codeigniter文档:Generating Query Results