현재 위치: > 최신 기사 목록> $ errno를 사용하여 mysqli_sql_exception과 함께 자세한 예외를 찾으십시오.

$ errno를 사용하여 mysqli_sql_exception과 함께 자세한 예외를 찾으십시오.

M66 2025-05-28

MySQL Extension은 PHP를 사용하여 MySQL 데이터베이스를 조작 할 때 가장 일반적인 데이터베이스 연결 도구 중 하나입니다. 그러나 데이터베이스 작업 중에는 일부 예외 또는 오류가 불가피합니다. 이러한 예외를 더 잘 잡고 처리하기 위해 MySQLI_SQL_EXCEPTIONMYSQLI :: $ ERRNO는 강력한 기능을 제공합니다. 이 기사는 예제를 사용하여 MySQLI_SQL_Exception 과 함께 자세한 데이터베이스 예외 정보를 캡처하는 방법을 설명하고 MySQLI :: $ errno를 사용하여 이러한 오류를 추가로 처리합니다.

1. mysqli_sql_exception 이란 무엇입니까?

mysqli_sql_exception은 MySQL 데이터베이스 예외를 처리하는 데 특별히 사용되는 PHP의 클래스입니다. 데이터베이스 쿼리를 실행할 때 오류가 발생하면 MySQLI_SQL_Exception이 해당 예외를 던집니다. 이를 통해 개발자는 Try ... Catch 문 ( MySQLI_ERROR 또는 MYSQLI_ERRNO )에 의존하지 않고 시도를 통해 이러한 예외를 잡아서 처리 할 수 ​​있습니다.

2. mysqli :: $ errno 의 역할

mysqli_sql_exception 에서 mysqli :: $ errno는 마지막 mySQL 작업에 대한 오류 코드를 기록합니다. 데이터베이스 작동 오류의 유형을 나타내는 숫자입니다. 예를 들어, mysqli :: $ errno는 연결 실패, 쿼리 구문 오류 또는 권한 문제 등 구별하는 데 도움이 될 수 있습니다.

3. 예외를 잡고 처리하는 기본 프로세스

mysqli_sql_exception을 사용하여 데이터베이스 예외를 포착하기위한 기본 단계는 다음과 같습니다.

  1. 데이터베이스 연결을 만들 때 예외 모드를 켭니다.

  2. 시도 시도 ... Catch Statement 블록을 사용하여 데이터베이스 작업에서 예외를 포착하십시오.

  3. Catch Statement 블록에서 mysqli :: $ errno를 사용하여 오류 코드를 가져오고 오류 코드를 기반으로 자세한 오류 정보 또는 처리 로직을 제공하십시오.

4. 샘플 코드

다음은 MySQLI_SQL_ExceptionMySQLI :: $ Errno를 사용하여 데이터베이스 예외를 포착하고 처리하는 완전한 예입니다.

 <?php
// 예외 처리를 켜십시오
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);

// 데이터베이스 연결을 만듭니다
try {
    $mysqli = new mysqli("localhost", "root", "password", "test_database");

    // 데이터베이스 쿼리 작업을 수행합니다
    $result = $mysqli->query("SELECT * FROM non_existing_table");

} catch (mysqli_sql_exception $e) {
    // 데이터베이스 예외를 포착합니다
    echo "데이터베이스 작업이 실패했습니다: " . $e->getMessage() . "<br>";

    // 출력 오류 코드
    echo "오류 코드: " . $e->getCode() . "<br>";

    // 다른 유형의 오류를 추가로 처리합니다
    if ($e->getCode() == 1146) { // 1146 테이블이 존재하지 않음을 나타냅니다
        echo "실수:테이블이 존재하지 않습니다,데이터베이스 구조를 확인하십시오。";
    } else {
        echo "실수:쿼리를 실행할 수 없습니다,확인하십시오 SQL 문법。";
    }

    // 또한 사용할 수 있습니다 mysqli::$errno 구체적으로 얻으십시오 MySQL 오류 코드
    echo "MySQL 오류 코드: " . $mysqli->errno . "<br>";
    echo "MySQL 실수信息: " . $mysqli->error . "<br>";
}
?>

5. 코드 파싱

  1. 예외 보고서 켜기 :
    mysqli_report (mysqli_report_error | mysqli_report_strict)를 사용하십시오. mysqli_sql_exception 예외 보고서를 활성화하기위한 명령문. 이로 인해 MySQLI는 오류 코드를 반환하여 오류를보고하는 대신 오류가 발생할 때 MySQLI_SQL_EXCEPCE 예외를 던지게됩니다.

  2. 예외 포획 :
    시도 ... Catch 문을 통해, 우리는 모든 mysqli_sql_exception 예외를 포착하고 캐치 문 블록에서 처리 할 수 ​​있습니다.

  3. 오류 코드 및 정보 가져 오기 :
    데이터베이스 예외의 오류 코드는 $ e-> getCode () 를 통해 얻을 수 있으며 오류 코드에 따라 다른 오류 프롬프트 정보를 제공 할 수 있습니다.

  4. mysqli :: $ errnomysqli :: $ 오류 사용 :
    $ mysqli-> errno$ mysqli-> error를 통해 MySQL 데이터베이스의 오류 코드 및 오류 정보를 가져 오십시오. 이는 디버깅 및 처리 오류에 매우 유용합니다.

6. 오류 처리 최적화

실제 개발에서 오류 정보 캡처 및 출력 외에도 오류 유형을 최적화 할 수도 있습니다.

  • 오류 로깅 : 오류 정보를 로그 파일에 기록하여 더 쉬운 후속보기 및 문제 해결을 위해 오류 정보를 기록합니다.

  • 사용자 친화적 인 오류 프롬프트 : 사용자에게 데이터베이스 세부 정보를 노출하지 않도록 오류 유형에 따라 친숙한 프롬프트 정보를 표시합니다.

  • 트랜잭션 처리 : 여러 쿼리와 관련된 작업의 경우 트랜잭션 메커니즘을 사용하여 데이터 일관성 및 안정성을 보장 할 수 있습니다.

7. 요약

mysqli_sql_exceptionmysqli :: $ errno를 결합하여 데이터베이스 작업에서 자세한 예외 정보를 캡처하고 처리 할 수 ​​있습니다. 이를 통해 개발자는 문제를 더 빨리 찾는 데 도움이 될뿐만 아니라 시스템의 견고성 및 사용자 경험을 향상시킵니다. 이 기사의 예제가 PHP의 데이터베이스 예외 처리 메커니즘을 더 잘 이해하고 사용하는 데 도움이되기를 바랍니다.