"경고: 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_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의 견고성과 신뢰성을 보장할 수 있습니다.
위 내용은 `mysqli_query()`가 '경고: mysqli_query()에서는 매개변수 1이 MySQLi, null이 주어질 것으로 예상합니다'를 반환하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!