PHP 개발 중에는 종종 데이터베이스와 상호 작용해야하며 데이터베이스 연결 문제로 인해 일부 오류가 발생할 수 있습니다. MySQL 데이터베이스의 경우 MySQLI Extension은 MySQLI :: $ Errno 및 MySQLI_REAL_CONNECT ()가 개발자가 데이터베이스 연결의 복잡한 문제를 진단하고 해결하는 데 도움이되는 두 가지 매우 유용한 두 가지 도구 인 이러한 문제를 처리하는 여러 가지 방법을 제공합니다.
이 기사는 MySQLI :: $ Errno 및 MySQLI_REAL_CONNECT ()를 사용하여 데이터베이스 연결의 오류를 처리하는 방법으로 뛰어납니다.
mysqli :: $ errno는 마지막 mysqli 작업의 오류 코드를 얻는 데 사용되는 속성입니다. MySQLI 객체의 구성원이며 발생한 오류 유형을 나타내는 정수 값을 반환합니다. 이 오류 코드를 사용하여 연결 실패 또는 쿼리 실행 실패의 이유를 진단 할 수 있습니다.
일반적인 오류 코드에는 다음이 포함됩니다.
0 : 오류가 없습니다
1045 : 잘못된 사용자 이름 또는 비밀번호
2002 : 데이터베이스 호스트에 연결할 수 없습니다
MySQLI_REAL_CONNECT ()는 MySQL 데이터베이스에 연결하는 데 사용되는 기능입니다. 일반적으로 MySQLI 객체와 함께 사용하여 호스트 이름, 사용자 이름, 암호 및 데이터베이스 이름을 제공하여 연결을 설정합니다. 연결이 실패하면이 함수는 false를 반환하고 mysqli :: $ errno 및 mysqli :: $ error를 통해 오류 메시지를 얻을 수 있습니다.
데이터베이스 연결 프로세스 중에 여러 문제가 발생할 수 있습니다. 예를 들어, 데이터베이스 호스트는 도달 할 수 없거나 사용자 이름이나 비밀번호가 잘못되거나 네트워크 문제도 있습니다. mysqli :: $ errno 및 mysqli_real_connect ()를 사용하면 이러한 문제를 효과적으로 캡처하고 해결할 수 있습니다.
먼저 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 년 은 데이터베이스 호스트에 연결할 수 없음을 나타냅니다.
경우에 따라 임시 네트워크 문제 또는 데이터베이스 서버가 다시 시작되어 데이터베이스 연결이 실패 할 수 있습니다. 연결이 실패 할 때 여러 번 자동으로 재 시도하는 재 시도 메커니즘을 설계 할 수 있습니다.
<?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 초 동안 일시 중지하고 연결이 성공적이거나 최대 재시도에 도달 할 때까지 다시 시도합니다.
일부 응용 프로그램에서 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를 통해 오류 코드를 얻을 수 있습니다.
mysqli :: $ errno 및 mysqli_real_connect ()를 사용하면 PHP의 데이터베이스 연결 문제를 효과적으로 처리 할 수 있습니다. 연결 고장, 오류 코드 진단 또는 자동 재시도 메커니즘 구현에 관계없이 MySQLI Extension은 복잡한 데이터베이스 연결 문제를 처리하는 데 도움이되는 강력한 기능을 제공합니다.
실제 개발에서 이러한 도구를 이해하고 마스터하면 디버깅 효율성을 향상시키고 연결 문제로 인한 오류를 줄일 수 있습니다. 이 기사의 예제 가이 도구를 사용하여 데이터베이스 연결 코드를 최적화하는 방법을 더 잘 이해하는 데 도움이되기를 바랍니다.