>백엔드 개발 >PHP 튜토리얼 >MySQL Fetch 함수가 '매개변수 1이 리소스일 것으로 예상'을 반환하는 이유는 무엇입니까?

MySQL Fetch 함수가 '매개변수 1이 리소스일 것으로 예상'을 반환하는 이유는 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-12-23 03:02:35113검색

Why Do MySQL Fetch Functions Return

"mysql_fetch_..." 예상 리소스 오류 이해

mysql_fetch_array(), mysql_fetch_assoc(), mysql_fetch_row 등 MySQL 함수를 사용할 때 () 및 mysql_num_rows를 사용하면 오류가 발생할 수 있습니다. "mysql_fetch_array()/mysql_fetch_assoc()/mysql_fetch_row()/mysql_num_rows 등... 매개변수 1이 리소스일 것으로 예상합니다."

오류는 함수에 대한 첫 번째 매개변수가 유효한 데이터베이스 리소스가 아님을 나타냅니다. 데이터베이스 리소스는 일반적으로 mysql_query()에 대한 성공적인 호출에서 얻습니다. mysql_query()가 쿼리 실행에 실패하면 false를 반환합니다.

문제 해결

이 오류를 해결하려면 쿼리가 성공적으로 실행되었는지 확인해야 합니다. 결과 리소스를 가져오기 함수에 전달하기 전에. 여기에는 mysql_query()의 반환 값을 확인하고 그에 따라 오류 조건을 처리하는 작업이 포함됩니다.

mysql_extension의 예

<?php
$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_real_escape_string()은 SQL 주입을 방지하기 위한 쿼리의 사용자 이름 문자열입니다. mysql_query()의 반환 값을 확인하고 쿼리가 실패하면 사용자 오류를 발생시킵니다. 쿼리가 성공하면 mysql_fetch_array() 함수에서 결과 리소스를 안전하게 사용할 수 있습니다.

위 내용은 MySQL Fetch 함수가 '매개변수 1이 리소스일 것으로 예상'을 반환하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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