> 백엔드 개발 > PHP 튜토리얼 > `mysql_fetch_array()`에 '매개변수 1이 리소스일 것으로 예상합니다'가 표시되는 이유는 무엇이며 어떻게 해결할 수 있습니까?

`mysql_fetch_array()`에 '매개변수 1이 리소스일 것으로 예상합니다'가 표시되는 이유는 무엇이며 어떻게 해결할 수 있습니까?

Linda Hamilton
풀어 주다: 2024-12-22 20:17:12
원래의
627명이 탐색했습니다.

Why Does `mysql_fetch_array()` Show

"mysql_fetch_array()/mysql_fetch_assoc()/mysql_fetch_row()/mysql_num_rows 등... 매개변수 1이 리소스가 될 것으로 예상합니다." 오류 이해

이 오류가 발생하면 데이터베이스 검색 중 하나가 함수(예: mysql_fetch_array(), mysql_fetch_assoc() 등)가 잘못된 매개변수로 호출되고 있습니다. 구체적으로 매개변수는 데이터베이스 결과 세트를 나타내는 리소스여야 하는데 부울 값이 아닙니다.

오류의 원인

이 문제의 근본 원인 오류는 일반적으로 실패한 데이터베이스 쿼리입니다. 쿼리가 실패하면 mysql_* 함수/메서드가 false를 반환하는데, 이는 부울 값으로 잘못 해석될 수 있습니다. 따라서 나중에 잘못된 결과로 검색 함수를 호출하면 이 오류가 발생합니다.

오류 수정

이 문제를 해결하려면 다음을 수행해야 합니다. 다음 단계를 따르십시오.

  1. 쿼리 결과 확인: mysql_query() 호출은 결과를 확인하여 false를 반환하지 않습니다.
  2. 쿼리 실패 처리: 쿼리가 실패하면 오류를 트리거하거나 적절하게 처리합니다.
  3. 적절한 매개변수 확인: 실패로 인해 발생한 부울 값이 아닌 올바른 결과 리소스를 검색 함수에 전달합니다. query.

다음 코드를 고려하세요.

$username = mysql_real_escape_string($_POST['username']);
$password = $_POST['password'];
$result = mysql_query("SELECT * FROM Users WHERE UserName LIKE '$username'");

if($result === FALSE) {
    trigger_error(mysql_error(), E_USER_ERROR);
}

while($row = mysql_fetch_array($result)) {
    echo $row['FirstName'];
}
로그인 후 복사

이 예에서는 먼저 mysql_query( ) 쿼리가 실패하면 오류를 트리거합니다. 그런 다음 $result 리소스를 mysql_fetch_array() 함수에 올바르게 전달합니다. 이렇게 하면 적절한 매개변수가 사용되어 오류 발생을 방지할 수 있습니다.

위 내용은 `mysql_fetch_array()`에 '매개변수 1이 리소스일 것으로 예상합니다'가 표시되는 이유는 무엇이며 어떻게 해결할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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