>백엔드 개발 >PHP 튜토리얼 >내 `mysqli_query()` 함수가 MySQLi 연결 개체 대신 Null 값을 받는 이유는 무엇입니까?

내 `mysqli_query()` 함수가 MySQLi 연결 개체 대신 Null 값을 받는 이유는 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-12-28 00:26:10828검색

Why Does My `mysqli_query()` Function Receive a Null Value Instead of a MySQLi Connection Object?

"경고: mysqli_query()에서는 매개변수 1이 mysqli가 될 것으로 예상하며, null이 제공됩니다." 이해

사용자 정의 CMS를 만드는 과정에서 , 당신은 다음과 같은 두려운 오류 메시지를 접했을 수도 있습니다: "경고: mysqli_query()는 매개변수 1이 MySQLi이어야 하며 null이 입력되어야 합니다." 이 실망스러운 문제는 종종 PHP 함수 내의 변수 범위에 대한 오해로 인해 발생합니다.

오류 원인

이 오류는 getPosts() 함수가 MySQLi 연결 개체를 저장하는 $con 변수에 액세스하지만 해당 함수 범위 내에서는 액세스할 수 없습니다. 이는 $con이 getPosts() 함수 외부에 정의되어 있기 때문입니다.

해결책: 연결을 종속성으로 전달

이 문제를 해결하려면 getPosts() 함수에 대한 연결 개체를 종속성으로 사용합니다. 이렇게 하면 함수가 연결에 액세스하고 필요한 데이터베이스 작업을 수행할 수 있습니다.

function getPosts(mysqli $con) {
    // Code to query the database using $con
}

추가 오류 방지

잠재적인 문제를 최소화하려면 다음을 사용하는 것이 좋습니다. 연결 오류를 처리하고 예외를 발생시키는 코드:

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT); // throw exceptions
$con = mysqli_connect("localhost", "xxxx", "xxxx", "xxxxx");

getPosts($con);

추가 팁

  • mysqli 객체를 직접 사용: mysqli_query() 사용을 피하고 $con->query()와 같은 mysqli 객체의 메서드를 직접 선택하세요.
  • 예외 처리: 다음에 의해 발생한 예외를 처리하는 것을 잊지 마세요. try...catch 블록을 사용하여 의미 있는 오류 메시지를 제공하는 mysqli 개체.
  • 연결 삭제: 연결이 완료되면 $con-> 리소스를 해제하는 close() 메소드입니다.

위 내용은 내 `mysqli_query()` 함수가 MySQLi 연결 개체 대신 Null 값을 받는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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