2015-02-06 104 views
0

我已經搜索了這個,但我可以找到的答案只提供更詳細的錯誤報告 - 我知道爲什麼存在錯誤我試圖防止錯誤發生!PHP注意:試圖獲取非對象的屬性

我的代碼是:

$player_sql = "SELECT player FROM player_instruments WHERE instrument = '".$instrument_id."'" . $users_helping; 
 
$result = $db->query($player_sql) or trigger_error($db->error); 
 
if ($result->num_rows > 0) { 
 
    while($row = $result->fetch_assoc()) { 
 
\t $position_where .= $row['player'] .","; 
 
\t }

現在,當有結果這個問題不會產生錯誤,但沒有從查詢結果我收到的錯誤:

PHP Notice: Trying to get property of non-object

這是因爲語句$ result-> num_rows沒有結果,不幸的是這是這行代碼應該檢查ING!

這麼長和短,我該如何驗證結果是否存在,如果沒有任何結果出現這個錯誤?

+0

查詢返回false,您在那裏有錯誤。 '$ users_helping' var中有什麼? – panther 2015-02-06 12:03:28

+0

$結果可能是一個布爾值?檢查快速 – Grushton94 2015-02-06 12:03:40

+0

我找到了解決方案,它在變量$ users_helping中。這產生了「AND IN()」的值,而這又導致錯誤出現。修復這個,所以它產生了「AND IN(0)」,意味着沒有錯誤產生,謝謝大家。 – leicstbn 2015-02-11 13:22:06

回答

2

檢查$結果是花了一兩個小時,試圖找出這一個,並在許多不同的網站對象

if (is_object($result) && $result->num_rows > 0) { 
0

我會用實際的術語來闡述它。有2種方式json_decode。取決於您使用的是哪一種,您應該如何在代碼中對它做出迴應。

1: $Response_decode1 = json_decode($response1, TRUE); 

2: $Response_decode2 = json_decode($response2); 

選項1使響應$ Response_decode1的行爲像一個本地PHP數組,可按名稱調用。 例如在調用兒童時使用方括號(以PHP爲單位)。

1: $Response_decode1['level1']['level2'] 

選項2使得響應$ Response_decode2行爲像與由名稱

2: $Response_decode2->level1->level2 

EG 類型1

foreach ($Response_decode1['level1']['level2']['level3'] as $entry){ 
     $TelNo .= $entry['value']; 
     $TelNo .= "/"; 
    } 

EG 類型2

稱爲(子)的對象一個響應對象
foreach ($Response_decode2->level1->level2->level3 as $entry){ 
     $TelNo .= $entry->value; 
     $TelNo .= "/"; 
    } 

我相信這會有幫助

相關問題