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 중국어 웹사이트의 기타 관련 기사를 참조하세요!