Php 如何修复错误:尝试获取非对象的属性?

Php 如何修复错误:尝试获取非对象的属性?,php,codeigniter,Php,Codeigniter,我希望在单击$\u POST['name']后从中获取,并在其中插入名称,以获取其他表中插入的行id,但获取以下错误。错误的原因是什么?如何修复 $name = $this -> input -> post('name'); $query_re = $this->db->get_where('tour_foreign', array('name' => $name))->row(); $data2 = array(); foreach ($residence

我希望在单击
$\u POST['name']
后从中获取,并在其中插入名称,以获取其他表中插入的行id,但获取以下错误。错误的原因是什么?如何修复

$name = $this -> input -> post('name');
$query_re = $this->db->get_where('tour_foreign', array('name' => $name))->row();

$data2 = array();
foreach ($residence_name as $idx => $name) {
    $data2[] = array(
        'relation' => $query_re->id, //This is line number 58
        'hotel_id' => $residence_id[$idx],
        'name' => $residence_name[$idx],
    );
};
$data222 = $this->db->insert_batch('residence', $data2);
错误:

遇到PHP错误
严重性:注意
消息:正在尝试 获取非对象的属性
文件名:foreign.php
行 编号:58


PHP不允许将函数的返回值视为对象,除非它返回引用。试一试

$where = $this->db->get_where(...);
$query_re = $where->row();
编辑:


没关系,我错过了“第58行”的评论,我想PHP5允许链接。奇怪

这个数据库调用似乎返回零行:

$query_re = $this->db->get_where('tour_foreign', array('name' => $name))->row();

也可以考虑使用NUMYROWSLE()来检查调用之前的数据库调用的结果。

< P>基本上,代码试图告诉你的是,试图获得一个不是对象(一个类的实例)的变量的属性。


与数字58一样,它表示$query\re不是一个对象,因此不能具有属性“id”。

请识别行#58@KorvinSzanto它是作为注释写的“//这是第58行”实际上,链接是允许的,不是只有php4才有问题吗?啊。是的,看来你们都是对的。谢谢你教我一些关于php5的新知识
$query_re = $this->db->get_where('tour_foreign', array('name' => $name))->row();
if(is_object($query_re))  {
    ....
}