我希望在点击$_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
答案 0 :(得分:1)
这个数据库调用似乎返回零行:
$query_re = $this->db->get_where('tour_foreign', array('name' => $name))->row();
在调用row()之前,还要考虑使用num_rows()来检查数据库调用的结果。
答案 1 :(得分:0)
PHP不允许您将函数的返回值视为对象,除非它返回引用。尝试
$where = $this->db->get_where(...);
$query_re = $where->row();
编辑:
没关系,我错过了'第58行'评论,我猜PHP5允许链接。花式
答案 2 :(得分:0)
基本上代码试图告诉你的是,你正在尝试获取一个不是对象(类的实例)变量的属性。
所以就像第58号一样,它说$ query_re不是一个对象,因此不能拥有属性'id'。
答案 3 :(得分:0)
$query_re = $this->db->get_where('tour_foreign', array('name' => $name))->row();
if(is_object($query_re)) {
....
}