Как исправить ошибку: пытается получить свойство необъекта? - PullRequest
0 голосов
/ 17 октября 2011

Я хочу получить после нажатия $_POST['name'] и где он с вставкой имени, получить идентификатор строки для вставки в другую таблицу, но получить следующую ошибку.В чем причина ошибки?Как исправить?

$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 ​​

Ответы [ 4 ]

2 голосов
/ 17 октября 2011

Кажется, что этот вызов базы данных возвращает ноль строк:

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

Также рассмотрите возможность использования num_rows () для проверки результата вызова базы данных перед вызовом row ().

0 голосов
/ 17 октября 2011
$query_re = $this->db->get_where('tour_foreign', array('name' => $name))->row();
if(is_object($query_re))  {
    ....
}
0 голосов
/ 17 октября 2011

По сути, код пытается вам сказать, что вы пытаетесь получить свойство переменной, которая НЕ является объектом (экземпляром класса).

Итак, как число 58, он говорит, что $ query_re не является объектом и поэтому не может иметь свойства 'id'.

0 голосов
/ 17 октября 2011

PHP не позволяет обрабатывать возвращаемое значение функции как объект, если только он не возвращает ссылку. Попробуйте

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

Edit:

Неважно, я пропустил комментарий «58-й строки», и я думаю, что PHP5 позволяет создавать цепочки. Fancy

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...