>백엔드 개발 >PHP 튜토리얼 >PHP에서 '비객체 속성을 가져오려고 시도 중' 오류가 발생하는 이유는 무엇입니까?

PHP에서 '비객체 속성을 가져오려고 시도 중' 오류가 발생하는 이유는 무엇입니까?

DDD
DDD원래의
2024-11-10 12:46:021040검색

Why Am I Getting the

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.