>백엔드 개발 >PHP 튜토리얼 >MySQLi에서 '비객체에서 멤버 함수 바인딩_param() 호출' 및 'mysqli_fetch_array(): 인수 #1은 mysqli_result 유형이어야 합니다.' 오류를 수정하는 방법은 무엇입니까?

MySQLi에서 '비객체에서 멤버 함수 바인딩_param() 호출' 및 'mysqli_fetch_array(): 인수 #1은 mysqli_result 유형이어야 합니다.' 오류를 수정하는 방법은 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2024-12-21 15:04:14370검색

How to Fix

MySQLi 오류 전파: mysqli_fetch_array() 및 Bind_param() 문제 해결

문제:

"멤버 함수 호출"과 같은 오류 특정 환경에서 MySQLi를 사용할 때 "bind_param() on a non-object" 및 "mysqli_fetch_array(): Argument #1 must be of type mysqli_result"가 발생할 수 있습니다. 이 문제는 일반적으로 PHP의 MySQL 오류 보고 구성 부족으로 인해 발생합니다.

해결 방법:

1. MySQL 오류 보고 활성화

MySQLi 연결을 설정하기 전에 다음 줄을 추가하여 PHP에서 MySQL 오류 보고를 활성화하여 시작하십시오.

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);

이 구성을 사용하면 모든 MySQL 오류가 PHP 예외로 전파되어 가시적이고 실행 가능하게 만듭니다.

2. 준비된 문 활용

SQL 쿼리 내 명시적인 PHP 변수를 물음표로 바꾸고 준비된 문을 사용하여 쿼리를 실행합니다. 이 접근 방식은 구문 오류 및 삽입 취약점을 방지하는 데 도움이 됩니다.

// Example using MySQLi prepared statements

$mysqli = new mysqli(...) or throw new Exception('Could not connect to DB');
$query = 'SELECT id, description FROM tbl_page_answer_category WHERE cur_own_id = ?';
$stmt = $mysqli->prepare($query);
$stmt->bind_param('i', $cur_id);
$stmt->execute();
$stmt->bind_result($uid, $desc);

추가 팁

  • 개발을 위해 화면에서 오류 출력이 활성화되어 있는지 확인하세요. 서버 또는 라이브 서버의 오류 로그를 통해.
  • 오류 메시지를 주의 깊게 검토하고 실제 오류를 확인하세요. 문제를 해결하세요.
  • 오류 메시지를 신뢰하고 보고된 오류가 진짜라고 가정하세요.
  • 기본 디버깅 기술을 구현하여 코드 실행을 확인하고 입력 데이터 무결성을 확인하세요.

위 내용은 MySQLi에서 '비객체에서 멤버 함수 바인딩_param() 호출' 및 'mysqli_fetch_array(): 인수 #1은 mysqli_result 유형이어야 합니다.' 오류를 수정하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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