>  기사  >  데이터 베이스  >  \"mysql_fetch_assoc(): 제공된 인수는 유효한 MySQL 결과 리소스가 아닙니다\"라는 경고가 나타나는 이유는 무엇입니까?

\"mysql_fetch_assoc(): 제공된 인수는 유효한 MySQL 결과 리소스가 아닙니다\"라는 경고가 나타나는 이유는 무엇입니까?

Barbara Streisand
Barbara Streisand원래의
2024-10-28 05:55:02145검색

  Why Am I Getting the

"php warning mysql_fetch_assoc" Mystified?

MySQL 데이터베이스에서 데이터를 검색하려고 할 때 당황스러운 "mysql_fetch_assoc" 메시지가 나타나는 것은 드문 일이 아닙니다. (): 제공된 인수는 유효한 MySQL 결과 리소스가 아닙니다." 경고. 이 문제는 mysql_fetch_assoc() 함수에 전달된 인수가 유효한 결과 집합 포인터가 아닐 때 발생합니다.

원인 이해

mysql_fetch_assoc() 함수는 다음과 같이 설계되었습니다. MySQL 결과 세트에서 연관 배열을 추출합니다. 결과 세트는 mysql_query()를 사용하여 쿼리를 실행하여 얻습니다. 따라서 mysql_fetch_assoc()에 전달된 인수는 일반적으로 mysql_query()에 의해 반환되는 유효한 결과 집합 포인터여야 합니다.

코드 살펴보기

제공된 코드 조각에서 문제는 두 번째 줄에 있습니다.

<code class="php">$mus = mysql_fetch_assoc($musicfiles);</code>

$musicfiles 변수에는 MySQL 결과 집합 포인터가 포함되어 있지 않습니다. 대신 getmusicfiles()에 대한 함수 호출 결과가 포함됩니다. 이 함수는 쿼리를 실행하고 결과를 반환하는 것처럼 보이지만(아마 mysql_query()를 사용하여) 반환 값이 변수에 저장되지 않습니다.

올바른 접근 방식

이 문제를 해결하려면 mysql_query() 호출 결과를 변수에 할당해야 합니다. 코드의 관련 부분을 다시 작성할 수 있는 방법은 다음과 같습니다.

<code class="php">$result = getmusicfiles($records['m_id']);
$mus = mysql_fetch_assoc($result);</code>

mysql_query()의 결과를 $result에 할당하면 mysql_fetch_assoc()에 작업할 유효한 결과 집합 포인터가 있는지 확인할 수 있습니다.

위 내용은 \"mysql_fetch_assoc(): 제공된 인수는 유효한 MySQL 결과 리소스가 아닙니다\"라는 경고가 나타나는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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