2011-10-17 53 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

請註明線#58 –

+0

@KorvinSzanto它寫成註釋 「//這是行數58」 –

+0

@Korvin - 他做到了。 – 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)) { 
    .... 
} 
相關問題