Php 尝试获取非对象codeigniter的属性
我从两个不同的函数调用一个函数两次,但对于其中一个函数,它说“尝试获取非对象的属性” 第一个功能是Php 尝试获取非对象codeigniter的属性,php,mysql,codeigniter,Php,Mysql,Codeigniter,我从两个不同的函数调用一个函数两次,但对于其中一个函数,它说“尝试获取非对象的属性” 第一个功能是 $sql=$this->db->query("select * from gl_events where entry_id='$entry_id'"); if($sql->num_rows() > 0) { $row3=$sql->row(); $event_respond[] = array( 'entry_
$sql=$this->db->query("select * from gl_events where entry_id='$entry_id'");
if($sql->num_rows() > 0)
{
$row3=$sql->row();
$event_respond[] =
array(
'entry_id'=>$row3->entry_id,
'event_title'=>$row3->event_title,
'location'=>$row3->event_loc_add_ln1,
'location1'=>$row3->event_loc_add_ln2,
'start'=>$row3->event_start_date,
'start1'=>$row3->event_start_time,
'created'=>$row3->user_id,
'about'=>$row3->event_descr,
'end'=>$row3->event_end_time,
'end1' => $row3->event_end_time,
'userid'=>$row3->user_id,
//here the function goes to gl_get_att function and
//calls gl_getusername function,
'attend'=>$this->gl_get_att($row3->entry_id),
// here it calls gl_getusername function directly
'username'=>$this->gl_getusername($row3->user_id)
);
}
gl\u get\u att定义:
public function gl_get_att($entry_id)
{
$query=$this->db->query("select * from gl_event_participants where event_id='$entry_id'");
//echo "select * from gl_event_participants where event_id='$entry_id'";
$row1=$query->row();
foreach($query->result() as $row)
{
$data[]= array(
'user_id'=>$row->user_id,
'username'=>$this->gl_getusername($row->user_id)// here it calls get username function
);
}
//print_r($data[1]);
//print_r($data[0]);
return $data;
}
public function gl_getusername($user_id)
{
$query=$this->db->query("select user_name from gl_user where user_id = '$user_id'");
$row1=$query->row();
//print_r($row1->user_name);
return $row1->user_name; //This is line 396
}
gl\u getusername定义:
public function gl_get_att($entry_id)
{
$query=$this->db->query("select * from gl_event_participants where event_id='$entry_id'");
//echo "select * from gl_event_participants where event_id='$entry_id'";
$row1=$query->row();
foreach($query->result() as $row)
{
$data[]= array(
'user_id'=>$row->user_id,
'username'=>$this->gl_getusername($row->user_id)// here it calls get username function
);
}
//print_r($data[1]);
//print_r($data[0]);
return $data;
}
public function gl_getusername($user_id)
{
$query=$this->db->query("select user_name from gl_user where user_id = '$user_id'");
$row1=$query->row();
//print_r($row1->user_name);
return $row1->user_name; //This is line 396
}
现在对于gl_get_att,它返回正确的值,但是对于我直接调用它的第一个函数,它不起作用
error message: A PHP Error was encountered
Severity: Notice
Message: Trying to get property of non-object
Filename: events/gl_event_model.php
Line Number: 396
第396行标记在上面
周末过后的周六,这一切都很好,但它不起作用!!!奇怪您没有检查
$query
是否有效,或者$query->row()是否返回对象。如果在数据库中找不到传入的$entity\u id
,则会生成此错误。Addvar\u dump($user\u id)
作为gl_getusername
函数的第一行。很可能是第二次调用gl\u getusername
时,您传递了null或一些无效数据。我已经检查了$query,它在gl\u get\u att中的工作正常。我正在尝试做的是在gl\u get\u att中获取用户名列表,并获得正确的输出。但它在第一个函数中不起作用。当我打印时($row1->user\u name);它为gl_get_att()打印,但对于上面的函数,在同一行中有一个错误,表示尝试获取非object的属性很抱歉,问题已解决!!!!谢谢@roup Kress!!!查询未获取结果dat是原因