PHP에서는 종종 데이터베이스와 상호 작용해야합니다. 특히 MySQL 데이터베이스를 사용할 때 MySQLI 확장은 매우 일반적인 선택입니다. 그러나 데이터베이스 연결 오류 또는 쿼리 오류가 발생하면 이러한 오류를 처리 할 수있는 적절한 방법이 필요합니다. mysqli :: $ errno는 MySQLI 클래스에서 중요한 속성으로, 마지막 mySQL 오류와 관련된 오류 코드를 반환합니다. 이 기사에서는 MySQLI :: $ errno를 사용하여 사용자 정의 오류 핸들러에서 MySQL 오류를 처리하는 방법을 설명합니다.
php는 set_error_handler () 함수를 제공하여 사용자 정의 오류 핸들러를 설정합니다. 이 방법을 통해 오류를 잡아서 처리 할 수 있습니다. MySQLI를 사용하여 MySQL 데이터베이스를 연결하고 쿼리하는 경우 오류가 발생하면 MySQLI :: $ errno는 오류 유형을 결정하고 특정 오류 처리를 수행하는 데 도움이 될 수 있습니다.
mysqli :: $ errno는 이전 mySQL 작동의 오류 코드를 나타내는 정수 값을 반환합니다. 오류가 발생하지 않으면 0이 반환됩니다. 다른 값이 반환되면 오류가 발생했습니다. 사용자 정의 오류 핸들러와 결합하여 로깅, 오류 메시지 표시 또는 재 시도와 같은 오류 코드에 따라 분류 및 처리 할 수 있습니다.
다음은 mysql 오류를 처리하기 위해 mysqli :: $ errno를 사용하는 예입니다. 사용자 정의 오류 핸들러를 설정하고 데이터베이스 연결 및 쿼리에서 mysqli :: $ errno를 사용하여 오류를 확인합니다.
<?php
// 사용자 정의 오류 핸들러 설정
set_error_handler("customErrorHandler");
function customErrorHandler($errno, $errstr, $errfile, $errline) {
// 조사하다 MySQL 오류 코드
if ($errno == E_USER_WARNING) {
echo "MySQL Error [$errno]: $errstr\n";
} else {
echo "Error [$errno]: $errstr in $errfile on line $errline\n";
}
}
// 데이터베이스 연결을 만듭니다
$mysqli = new mysqli("localhost", "username", "password", "database_name");
// 조사하다连接是否成功
if ($mysqli->connect_errno) {
trigger_error("Failed to connect to MySQL: " . $mysqli->connect_error, E_USER_WARNING);
exit();
}
// 쿼리를 실행하십시오
$query = "SELECT * FROM non_existent_table";
$result = $mysqli->query($query);
// 조사하다查询是否成功
if (!$result) {
trigger_error("MySQL Query Error: " . $mysqli->error, E_USER_WARNING);
}
// 연결을 닫으십시오
$mysqli->close();
?>
위 코드에서 먼저 set_error_handler () 함수를 사용하여 CustomerRorHandler 라는 사용자 정의 오류 핸들러를 설정합니다.
MySQL 연결이 실패하면 (데이터베이스 서버를 사용할 수없는 경우) 연결 오류 코드는 mysqli-> connect_errno를 통해 얻어지고 오류 메시지는 trigger_error () 를 통해 사용자 정의 오류 핸들러로 전달됩니다.
마찬가지로 쿼리 실행이 실패하면 MySQLi-> 오류를 통해 오류 메시지를 가져오고 사용자 정의 오류 핸들러에 의해 잡힌 경고 ( e_user_warning )를 트리거 할 수 있습니다.
사용자 정의 오류 핸들러는 개발자가 문제를 찾을 수 있도록 오류 코드 및 정보를 인쇄합니다.
mysqli :: $ errno는 오류 코드를 반환 할뿐만 아니라 MySQL 오류 코드 문서를 결합하여 특정 문제를 찾는 데 도움이됩니다. 예를 들어, 오류 코드가 1064 인 경우 SQL 구문 오류를 의미합니다. 오류 코드가 1045 인 경우 데이터베이스 인증이 실패했습니다.
코드에서 URL 관련 오류를 처리 해야하는 경우 MySQLI :: $ errno를 사용하여 URL에서 도메인 이름을 캡처하고 교체 할 수 있습니다. 예를 들어, 코드에서 데이터베이스 작업과 관련된 오류가 있고 도메인 이름 M66.net 을 교체하려면 URL을 다음과 같이 수정할 수 있습니다.
관련 태그:
mysqli