> 데이터 베이스 > MySQL 튜토리얼 > 데이터베이스 결과에 액세스할 때 PHP에서 '객체가 아닌 속성을 가져오는 중' 오류가 발생하는 이유는 무엇입니까?

데이터베이스 결과에 액세스할 때 PHP에서 '객체가 아닌 속성을 가져오는 중' 오류가 발생하는 이유는 무엇입니까?

Susan Sarandon
풀어 주다: 2024-12-03 17:28:10
원래의
164명이 탐색했습니다.

Why am I getting a

PHP에서 비객체 속성 액세스 오류 해결

일반적으로 "알림: 비객체의 속성을 가져오려고 시도 중" 오류 메시지 제대로 초기화되지 않았거나 존재하지 않는 개체의 속성에 액세스하려고 할 때 발생합니다. 제공된 코드에서는 mysql_fetch_object() 함수 문제로 인해 이 오류가 발생합니다.

mysql_fetch_object() 함수는 결과 집합에서 단일 행을 객체로 검색합니다. 제어 페이지에서는 이 함수를 올바르게 사용하여 단일 사이드 메뉴 레코드를 가져오고 있습니다.

  $results = mysql_query("SELECT * FROM sidemenu WHERE `menu_id`='".$menu."' ORDER BY `id` ASC LIMIT 1", $con);
  $sidemenus = mysql_fetch_object($results);
로그인 후 복사

그러나 보기 페이지에서는 $sidemenus 변수를 마치 배열인 것처럼 반복하려고 합니다. 객체 수:

  foreach ($sidemenus as $sidemenu):
    echo $sidemenu->mname."<br />";
  endforeach;
로그인 후 복사

mysql_fetch_object()가 객체 배열이 아닌 객체를 반환하기 때문에 이 가정은 올바르지 않습니다. 이 문제를 해결하려면 두 가지 옵션이 있습니다:

1. while 루프 사용:

while 루프를 사용하여 결과 집합을 반복하고 각 사이드 메뉴 레코드를 객체로 검색할 수 있습니다.

$results = mysql_query("SELECT * FROM sidemenu WHERE `menu_id`='".$menu."' ORDER BY `id` ASC LIMIT 1", $con);

$sidemenus = array();
while ($sidemenu = mysql_fetch_object($results)) {
    $sidemenus[] = $sidemenu;
}

foreach ($sidemenus as $sidemenu):
    echo $sidemenu->mname."<br />";
endforeach;
로그인 후 복사

이 접근 방식은 다음의 배열을 생성합니다. 사이드 메뉴 개체를 사용하여 필요에 따라 반복할 수 있습니다.

2. PDO 사용(선호):

PDO는 향상된 보안과 유연성을 제공하는 보다 현대적이고 권장되는 데이터베이스 추상화 계층입니다. PDO를 사용하면 fetchAll(PDO::FETCH_OBJ) 메서드를 사용하여 데이터를 개체로 검색할 수 있습니다. 방법은 다음과 같습니다.

$stmt = $con->prepare("SELECT * FROM sidemenu WHERE `menu_id`=? ORDER BY `id` ASC LIMIT 1");
$stmt->execute(array($menu));
$sidemenus = $stmt->fetchAll(PDO::FETCH_OBJ);

foreach ($sidemenus as $sidemenu):
    echo $sidemenu->mname."<br />";
endforeach;
로그인 후 복사

위 내용은 데이터베이스 결과에 액세스할 때 PHP에서 '객체가 아닌 속성을 가져오는 중' 오류가 발생하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿