현재 위치: > 최신 기사 목록> $ Errno 및 MySQLI_REAL_CONNECT ()는 복잡한 연결 문제를 공동 처리합니다

$ Errno 및 MySQLI_REAL_CONNECT ()는 복잡한 연결 문제를 공동 처리합니다

M66 2025-05-28

PHP 개발 중에는 종종 데이터베이스와 상호 작용해야하며 데이터베이스 연결 문제로 인해 일부 오류가 발생할 수 있습니다. MySQL 데이터베이스의 경우 MySQLI Extension은 MySQLI :: $ ErrnoMySQLI_REAL_CONNECT ()가 개발자가 데이터베이스 연결의 복잡한 문제를 진단하고 해결하는 데 도움이되는 두 가지 매우 유용한 두 가지 도구 인 이러한 문제를 처리하는 여러 가지 방법을 제공합니다.

이 기사는 MySQLI :: $ ErrnoMySQLI_REAL_CONNECT ()를 사용하여 데이터베이스 연결의 오류를 처리하는 방법으로 뛰어납니다.

1. mysqli :: $ errnomysqli_real_connect () 란 무엇입니까?

1.1 mysqli :: $ errno

mysqli :: $ errno는 마지막 mysqli 작업의 오류 코드를 얻는 데 사용되는 속성입니다. MySQLI 객체의 구성원이며 발생한 오류 유형을 나타내는 정수 값을 반환합니다. 이 오류 코드를 사용하여 연결 실패 또는 쿼리 실행 실패의 이유를 진단 할 수 있습니다.

일반적인 오류 코드에는 다음이 포함됩니다.

  • 0 : 오류가 없습니다

  • 1045 : 잘못된 사용자 이름 또는 비밀번호

  • 2002 : 데이터베이스 호스트에 연결할 수 없습니다

1.2 mysqli_real_connect ()

MySQLI_REAL_CONNECT ()는 MySQL 데이터베이스에 연결하는 데 사용되는 기능입니다. 일반적으로 MySQLI 객체와 함께 사용하여 호스트 이름, 사용자 이름, 암호 및 데이터베이스 이름을 제공하여 연결을 설정합니다. 연결이 실패하면이 함수는 false를 반환하고 mysqli :: $ errnomysqli :: $ error를 통해 오류 메시지를 얻을 수 있습니다.

2. 데이터베이스 연결 문제를 다루기위한 기본 아이디어

데이터베이스 연결 프로세스 중에 여러 문제가 발생할 수 있습니다. 예를 들어, 데이터베이스 호스트는 도달 할 수 없거나 사용자 이름이나 비밀번호가 잘못되거나 네트워크 문제도 있습니다. mysqli :: $ errnomysqli_real_connect ()를 사용하면 이러한 문제를 효과적으로 캡처하고 해결할 수 있습니다.

2.1 연결 오류를 확인하십시오

먼저 MySQLI_REAL_CONNECT ()를 통해 데이터베이스에 연결하려고 시도 할 수 있습니다. 연결이 실패하면 MySQLI :: $ errno를 확인하여 특정 오류 코드를보고 해당 측정을 수행 할 수 있습니다.

 <?php
// 만들다 mysqli 물체
$mysqli = new mysqli();

// 연결 매개 변수를 구성하십시오
$host = "localhost";
$username = "root";
$password = "";
$dbname = "test_database";

// 연결하려고 노력하십시오
if (!$mysqli->real_connect($host, $username, $password, $dbname)) {
    // 오류 코드를 가져옵니다
    $errno = $mysqli->errno;
    echo "데이터베이스에 연결하지 못했습니다,오류 코드: $errno\n";

    // 根据오류 코드进行处理
    switch ($errno) {
        case 1045:
            echo "잘못된 사용자 이름 또는 비밀번호。\n";
            break;
        case 2002:
            echo "데이터베이스 서버에 연결할 수 없습니다。\n";
            break;
        default:
            echo "알 수없는 오류: " . $mysqli->error . "\n";
    }
} else {
    echo "데이터베이스 연결이 성공적입니다!\n";
}
?>

이 예에서는 mysqli_real_connect ()를 사용하여 데이터베이스에 연결하려고합니다. 연결이 실패하면 $ mysqli-> errno를 통해 오류 코드를 가져 와서 오류 코드에 따라 다르게 처리합니다. 예를 들어, 오류 코드 1045는 사용자 이름 또는 비밀번호 오류를 나타내고 2002 년 은 데이터베이스 호스트에 연결할 수 없음을 나타냅니다.

2.2 연결 메커니즘을 다시 시도하십시오

경우에 따라 임시 네트워크 문제 또는 데이터베이스 서버가 다시 시작되어 데이터베이스 연결이 실패 할 수 있습니다. 연결이 실패 할 때 여러 번 자동으로 재 시도하는 재 시도 메커니즘을 설계 할 수 있습니다.

 <?php
$max_retries = 3;
$retries = 0;
$connected = false;

while ($retries < $max_retries && !$connected) {
    if ($mysqli->real_connect($host, $username, $password, $dbname)) {
        $connected = true;
        echo "데이터베이스 연결이 성공적입니다!\n";
    } else {
        $retries++;
        $errno = $mysqli->errno;
        echo "연결이 실패했습니다,오류 코드: $errno,다시 시도...\n";
        sleep(1); // 정지시키다1몇 초 만에 다시 시도하십시오
    }
}

if (!$connected) {
    echo "多次연결이 실패했습니다,데이터베이스 연결을 설정할 수 없습니다。\n";
}
?>

이 예에서는 최대 3 번 재 시도하는 메커니즘을 설정했습니다. 연결이 실패하면 1 초 동안 일시 중지하고 연결이 성공적이거나 최대 재시도에 도달 할 때까지 다시 시도합니다.

3. 예 : URL 도메인 이름 문제 처리

일부 응용 프로그램에서 URL 연결에는 데이터베이스의 호스트 이름이 포함될 수 있습니다. 데이터베이스 구성 파일의 다른 환경에 따라 다른 도메인 이름을 선택해야한다고 가정하십시오. 도메인 이름이 유효하지 않거나 구문 분석이 잘못된 경우 mysqli :: $ errno를 통해 오류 코드를 가져 와서 사용자에게 프롬프트 할 수 있습니다.

다음은 M66.net 과 연결시 도메인 이름을 교체해야한다고 가정하고 연결에 실패하면 오류 메시지를 출력합니다.

 <?php
// 데이터베이스 구성
$host = "www.example.com"; // 이것이 구성 파일의 도메인 이름이라고 가정합니다.
$username = "root";
$password = "";
$dbname = "test_database";

// 필요한 경우 m66.net 연결할 도메인 이름
$host = str_replace("example.com", "m66.net", $host);

// 연결하려고 노력하십시오
$mysqli = new mysqli();
if (!$mysqli->real_connect($host, $username, $password, $dbname)) {
    echo "연결이 실패했습니다,오류 코드: " . $mysqli->errno . "\n";
} else {
    echo "성공적으로 연결되었습니다: $host\n";
}
?>

이 예에서는 example.com을 m66.net 으로 바꾸고 데이터베이스 연결을 만듭니다. 연결이 실패하면 mysqli :: $ errno를 통해 오류 코드를 얻을 수 있습니다.

4. 요약

mysqli :: $ errnomysqli_real_connect ()를 사용하면 PHP의 데이터베이스 연결 문제를 효과적으로 처리 할 수 ​​있습니다. 연결 고장, 오류 코드 진단 또는 자동 재시도 메커니즘 구현에 관계없이 MySQLI Extension은 복잡한 데이터베이스 연결 문제를 처리하는 데 도움이되는 강력한 기능을 제공합니다.

실제 개발에서 이러한 도구를 이해하고 마스터하면 디버깅 효율성을 향상시키고 연결 문제로 인한 오류를 줄일 수 있습니다. 이 기사의 예제 가이 도구를 사용하여 데이터베이스 연결 코드를 최적화하는 방법을 더 잘 이해하는 데 도움이되기를 바랍니다.