"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > `mysqli_query()`가 "경고: mysqli_query()에서는 매개변수 1이 MySQLi, null이 주어질 것으로 예상합니다"를 반환하는 이유는 무엇입니까?

`mysqli_query()`가 "경고: mysqli_query()에서는 매개변수 1이 MySQLi, null이 주어질 것으로 예상합니다"를 반환하는 이유는 무엇입니까?

2024년 12월 22일에 게시됨
검색:205

Why Does `mysqli_query()` Return

"경고: mysqli_query()는 매개변수 1이 MySQLi일 것으로 예상하며, null이 제공됩니다." 오류

사용자 정의를 생성하려는 시도에서 CMS에서 다음 오류 메시지가 표시되었습니다.

"경고: mysqli_query()에서는 매개변수 1이 다음과 같을 것으로 예상합니다. MySQLi, null은 "

오류 원인

이 오류는 SQL 쿼리를 실행하는 mysqli_query() 함수가 첫 번째로 MySQLi 객체를 예상함을 나타냅니다. 매개변수. 그러나 getPosts() 함수에서는 MySQLi 객체 대신 null 값을 전달하고 있습니다.

해결책

이 문제에 대한 해결책은 다음을 확인하는 것입니다. $con MySQLi 객체는 getPosts() 함수의 범위 내에 있습니다. 코드에서 $con은 전역 범위에 정의되어 있지만 함수 내에서는 액세스할 수 없습니다.

MySQLi 객체를 종속성으로 전달

이는 MySQLi 객체를 getPosts() 함수에 종속성으로 전달하는 것입니다. 이를 수행하는 방법은 다음과 같습니다.

function getPosts(mysqli $con) {
    // etc
}

MySQLi 객체를 함수의 매개변수로 만들면 해당 객체가 함수 범위 내에서 사용 가능하고 mysqli_query()에서 사용할 수 있음을 보장할 수 있습니다.

추가 권장사항

범위 지정 문제를 해결하는 것 외에도 다음 구현을 고려하세요. 권장 사항:

  • mysqli_report()를 사용하여 오류 보고 옵션을 설정하여 오류 및 연결 실패를 처리합니다.
  • mysqli::error를 사용하여 연결 오류 또는 쿼리 오류가 발생하는 경우 스크립트 실행을 중지합니다. ().

다음은 이를 구현하는 방법에 대한 예입니다. 권장 사항:

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

if (!$con) {
    throw new Exception("Failed to connect to MySQL: " . mysqli_connect_error());
}

getPosts($con);

이러한 권장 사항을 구현하면 맞춤 CMS의 견고성과 신뢰성을 보장할 수 있습니다.

최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3