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)) {
....
}