2015-02-06 7 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

+0

$ 결과는 부울 일 수 있습니까? – Grushton94

+0

해결책을 찾았는지, 변수 $ users_helping에 있는지 확인하십시오. 이 값은 "AND IN()"값을 생성하여 오류가 발생하게합니다. 이 문제를 해결하기 위해 "AND IN (0)"대신 오류가 생성되지 않았습니다. 모두에게 감사드립니다. – leicstbn

답변

2

확인 $ 결과가 객체

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

이 일을 알아 내려고 한 두 시간 소비, 그리고 많은 다른 사이트에있는 경우.

실용적인 측면에서 설명하겠습니다. 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는 이름

2: $Response_decode2->level1->level2 

EG 1 형

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

EG 2 형

에 의해 호출 (어린이) 오브젝트와 응답 오브젝트처럼 응답 $ Response_decode2 행위를한다
foreach ($Response_decode2->level1->level2->level3 as $entry){ 
     $TelNo .= $entry->value; 
     $TelNo .= "/"; 
    } 

이 도움이 됨

관련 문제