현재 위치: > 최신 기사 목록> $ errno를 사용하여 다른 SQL 실패 유형의 테스트를 자동화하십시오.

$ errno를 사용하여 다른 SQL 실패 유형의 테스트를 자동화하십시오.

M66 2025-05-28

PHP에서 MySQL 데이터베이스를 사용하는 경우 SQL 쿼리를 실행할 때 오류가 발생할 수 있습니다. 이러한 오류를 포지셔닝하기 위해 MySQLI :: $ errno 가 제공하는 오류 코드를 사용하여 실패의 원인을 결정하고 그에 따라 처리 할 수 ​​있습니다. 이 기사는 MySQLI :: $ errno를 사용하여 다양한 유형의 SQL 실행 실패를 자동으로 식별하고 테스트하는 방법을 소개합니다.

1. mysqli :: $ errno를 이해하십시오

mysqli :: $ errno는 최근 실행 된 MySQL 쿼리의 오류 코드를 포함하는 속성입니다. 다른 유형의 오류를 나타내는 정수 값을 반환합니다. 이는 개발자에게 매우 유용하며 SQL을 실행할 때 문제를 찾는 데 도움이 될 수 있습니다.

일반적으로 mysqli :: $ errnomysqli :: $ 오류가 함께 사용되며, 후자는 오류가 발생하면 오류 메시지를 반환하고 전자는 오류에 대한 특정 오류 코드를 제공합니다. 이 정보를 통해 SQL 오류는 그에 따라 처리 할 수 ​​있습니다.

2. 일반적인 MySQL 오류 코드

다음은 몇 가지 일반적인 MySQL 오류 코드 예제 및 그 의미입니다.

오류 코드 오류 설명
1045 액세스 거부 (액세스 권한 없음)
1064 SQL 구문 오류
1146 테이블이 존재하지 않습니다
1054 열이 존재하지 않습니다
1062 중복 입력 (고유 제약 조건 위반)

SQL 쿼리를 실행하면 mysqli :: $ errno를 통해 이러한 오류 코드를 확인하고 그에 따라 처리 할 수 ​​있습니다.

3. mysqli :: $ errno를 사용하여 오류를 처리하십시오

먼저 MySQL 데이터베이스에 연결된 인스턴스가 필요하고 SQL 쿼리를 실행하고 오류가 있는지 확인하십시오. 다음은 샘플 코드입니다.

 <?php
$mysqli = new mysqli("localhost", "user", "password", "database");

if ($mysqli->connect_error) {
    die("연결이 실패했습니다: " . $mysqli->connect_error);
}

$query = "SELECT * FROM non_existent_table"; // 의도적으로 잘못된 테이블 이름
$result = $mysqli->query($query);

if (!$result) {
    // 쿼리가 실패하면,오류 코드 및 오류 정보를 가져옵니다
    echo "오류 코드: " . $mysqli->errno . "<br>";
    echo "오류 메시지: " . $mysqli->error . "<br>";

    // 根据오류 코드做不同的处理
    switch ($mysqli->errno) {
        case 1045:
            echo "액세스 권한이 없습니다,데이터베이스 사용자의 권한을 확인하십시오。";
            break;
        case 1064:
            echo "SQL 구문 오류,쿼리 구문을 확인하십시오。";
            break;
        case 1146:
            echo "테이블이 존재하지 않습니다,테이블 이름을 확인하십시오。";
            break;
        case 1054:
            echo "열이 존재하지 않습니다,열 이름을 확인하십시오。";
            break;
        case 1062:
            echo "항목을 반복하십시오,고유 한 제약의 위반。";
            break;
        default:
            echo "다른 오류,확인하십시오。";
    }
} else {
    // 쿼리 성공,처리 결과
    while ($row = $result->fetch_assoc()) {
        echo "데이터: " . $row['column_name'] . "<br>";
    }
}

$mysqli->close();
?>

위 코드에서 SQL 실행이 실패하면 오류 코드 및 오류 메시지가 먼저 인쇄됩니다. 그런 다음 mysqli :: $ errno 의 값을 기반으로 스위치 문을 통해 오류 유형을 판단하고 특정 오류 프롬프트를 제공합니다.

4. 오류 테스트를 위해 mysqli :: $ errno를 사용하십시오

의도적으로 오류를 도입하여 mysqli :: $ errno 의 효과를 테스트 할 수 있습니다. 예를 들어 다음과 같은 일반적인 오류를 시도 할 수 있습니다.

  • 오류 테이블 이름 : 쿼리 테이블이 존재하지 않으면 MySQL은 오류 코드 1146을 반환합니다 (테이블이 존재하지 않음).

  • 오류 SQL 구문 : 구문 오류는 일반적으로 1064 오류 코드를 반환합니다.

  • 권한 문제 : 데이터베이스 사용자에게 충분한 권한이없는 경우 오류 코드 1045가 반환됩니다.

테스트하는 동안 SQL 쿼리 문을 수정하여 이러한 오류를 트리거하고 mysqli :: $ errno 를 통해 해당 오류 코드를 얻을 수 있습니다.

5. 예 : URL 테스트에 실패한 SQL 쿼리

일부 복잡한 SQL 쿼리에서는 URL 또는 외부 데이터 소스를 사용하는 것이 포함될 수 있습니다. 외부 리소스가 쿼리에 관여하는 경우 URL과 유사한 메소드를 사용하여 URL이 유효한 지 확인할 수 있습니다.