PHP에서 Non-Object의 속성을 얻으려고 시도: 자세한 설명
PHP에서 "Trying to Get Property of Non-Object" -object" 오류 메시지는 당황스러울 수 있습니다. 이 오류의 원인과 해결 방법을 자세히 알아보기 위해 제공된 코드 조각을 분석해 보겠습니다.
// Control page $results = mysql_query(...); $sidemenus = mysql_fetch_object($results);
// View page foreach ($sidemenus as $sidemenu) { echo $sidemenu->mname."<br />"; }
이 문제는 mysql_fetch_object()가 결과 집합의 첫 번째 행을 나타내는 단일 객체를 반환하기 때문에 발생합니다. 반면 보기 페이지의 루프는 $sidemenus를 배열로 처리하고 해당 요소에 객체로 액세스하려고 시도합니다.
// Fix $results = mysql_query(...); $sidemenus = array(); while ($sidemenu = mysql_fetch_object($results)) { $sidemenus[] = $sidemenu; }
이것은 수정된 코드는 $sidemenus를 배열로 초기화하고 결과 집합을 반복하여 각 개체를 배열에 추가합니다. 이후에 보기 페이지는 $sidemenus를 객체 배열로 안전하게 반복할 수 있습니다.
또는 보다 효율적인 데이터베이스 처리를 위해 PDO(PHP 데이터 객체)로 전환하는 것을 고려해 보세요. PDOStatement::fetchAll(PDO::FETCH_OBJ)는 유사한 기능을 제공하지만 성능과 보안이 향상되었습니다.
위 내용은 PHP에서 '비객체 속성을 가져오려고 시도 중' 오류가 발생하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!