2011-10-17 3 views
0

클릭 후 $_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); 

오류 :이 참조를 반환하지 않는

A PHP Error was encountered
Severity: Notice
Message: Trying to get property of non-object
Filename: foreign.php
Line Number: 58

+1

라인 번호에게이 주석으로 쓰여 @KorvinSzanto 58 –

+0

을 확인하시기 바랍니다 @Korvin –

+0

"//이 줄 번호 58입니다"- 그는 않았다. – CodeReaper

답변

1

이이 데이터베이스 호출이 제로 행을 반환하는 것 같다() 행을 호출하기 전에 데이터베이스 호출의 결과를 확인

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

는 또한 NUM_ROWS 사용을 고려를().

0

PHP, 당신은 개체로 함수의 반환 값을 처리 할 수 ​​없습니다.

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

편집하십시오 :

신경 끄시을, 나는 '선 58'의 의견을 놓친, 나는 PHP5는 체인 허용 같아요. 팬시

+0

사실, 여기에 연결이 허용됩니다 –

+0

php4에서만 문제가되지 않습니까? – CodeReaper

+0

어. 네, 둘 다 맞습니다. php5에 관해 새로운 것을 가르쳐 주신 것에 대해 고맙습니다. –

0

기본적으로 코드가 말하고자하는 것은 객체가 아닌 변수 (클래스의 인스턴스)를 가져 오려고하는 것입니다.

따라서 58 번과 같이 $ query_re는 객체가 아니므로 'id'속성을 가질 수 없습니다.

0
$query_re = $this->db->get_where('tour_foreign', array('name' => $name))->row(); 
if(is_object($query_re)) { 
    .... 
} 
관련 문제