현재 위치: > 최신 기사 목록> 현지화 오류 프롬프트를 위해 $ errno와 언어 팩을 결합합니다

현지화 오류 프롬프트를 위해 $ errno와 언어 팩을 결합합니다

M66 2025-05-29


MySQLI :: $ errno 및 언어 패키지를 결합하여 현지화 된 데이터베이스 오류 프롬프트를 구현하는 방법은 무엇입니까?

웹 애플리케이션을 개발할 때는 데이터베이스 작업의 오류 처리가 필수적입니다. 사용자 경험을 향상시키기 위해서는 종종 다른 로케일을 기반으로 친숙한 오류 메시지를 표시해야합니다. PHP는 MySQL 데이터베이스와 상호 작용하기 위해 MySQLI 확장을 제공하며 MySQLI :: $ errno 속성은 오류 코드를 얻는 데 도움이되므로 오류 코드를 기반으로 해당 오류 정보를 반환 할 수 있습니다.

이 기사는 MySQLI :: $ errno 및 언어 패키지를 결합하여 현지화 데이터베이스 오류 프롬프트를 구현하는 방법을 소개합니다.

1. 기본 아이디어

먼저, PHP의 MySQLI 확장자는 MySQLI :: $ errno 속성을 제공하여 최신 MySQL 오류에 대한 오류 코드를 저장합니다. 오류 코드를 기반으로 해당 지역화 된 오류 프롬프트를 찾을 수 있다면 응용 프로그램이 더 유용 할 수 있으며 다른 로케일에 따라 적절한 오류 메시지를 반환 할 수 있습니다.

구현할 때는 일반적으로 다음 단계가 필요합니다.

  1. 데이터베이스 오류를 캡처하고 오류 코드를 가져옵니다 . mysqli :: $ errno .

  2. 언어 팩을 통해 해당 언어에 대한 오류 정보를 얻으십시오.

  3. 현지화 오류 메시지를 사용자에게 표시합니다.

2. 언어 패키지를 만듭니다

먼저 언어 패키지를 만들어야합니다. 영어와 중국어라는 두 가지 언어가 있다고 가정합니다. 이 정보를 PHP 배열에 저장하여 후속 검색 및 참조를 용이하게 할 수 있습니다.

 // en.php (영어 팩)
return [
    '1045' => 'Access denied for user',
    '1146' => 'Table doesn\'t exist',
    '2002' => 'Connection refused',
    // 더 많은 오류 코드와 해당 오류 메시지를 추가 할 수 있습니다.
];

// zh.php (중국어 팩)
return [
    '1045' => '사용자 액세스 거부',
    '1146' => '테이블이 존재하지 않습니다',
    '2002' => '연결이 거부되었습니다',
    // 더 많은 오류 코드와 해당 오류 메시지를 추가 할 수 있습니다.
];

위는 우리가 가정 한 두 가지 언어 팩 (영어와 중국어)입니다. 실제 응용 프로그램에서는 더 많은 언어 패키지가 있거나 JSON, XML 및 기타 형식을 사용하여 언어 데이터를 저장할 수 있습니다.

3. 현지화 오류 프롬프트를 구현하기 위해 mysqli :: $ errno 와 결합했습니다

데이터베이스 오류가 발생하면 mysqli :: $ errno를 통해 오류 코드를 얻은 다음 오류 코드를 기반으로 언어 패키지에서 해당 오류 프롬프트 정보를 얻을 수 있습니다.

 <?php

// 언어 팩로드
$lang = 'zh'; // 여기에서 사용자의 언어 설정에 따라 동적으로 선택할 수 있습니다.
$langFile = $lang . '.php';
$errorMessages = include($langFile);

// 만들다 MySQLi 연결하다
$mysqli = new mysqli("localhost", "username", "password", "database");

// 检查연결하다
if ($mysqli->connect_error) {
    $errno = $mysqli->connect_errno;  // 获取연결하다错误码
    echo '数据库연결하다失败: ' . $errorMessages[$errno] ?? '알 수없는 오류';
    exit();
}

// 쿼리 작업을 수행하십시오
$result = $mysqli->query("SELECT * FROM non_existing_table");

if (!$result) {
    // 오류 코드를 가져 와서 현지화 된 오류 정보를 출력하십시오
    $errno = $mysqli->errno;
    echo '쿼리가 실패했습니다: ' . $errorMessages[$errno] ?? '알 수없는 오류';
}

?>

이 예에서는 데이터베이스 연결 또는 쿼리 작업이 실패하면 MySQLI :: $ errno가 해당 오류 코드를 반환 한 다음 언어 패키지를 통해 해당 오류 메시지를 얻고 표시합니다.

4. 더 복잡한 오류 처리 : 사용자 정의 오류 메시지를 추가하십시오

때로는 현지화 된 메시지에 해당하는 명확한 오류 코드가없는 경우가있을 수 있습니다. 이 경우 각 오류 코드에 대한 기본 오류 메시지를 제공하고 특정 상황에 따라 추가로 사용자 정의 할 수 있습니다.

 <?php

// 기본 오류 메시지
$defaultMessages = [
    '1045' => 'Access denied for user',
    '1146' => 'Table doesn\'t exist',
    '2002' => 'Connection refused',
];

// 현지화 된 오류 메시지를 가져옵니다,그렇지 않다면,기본 메시지를 사용하십시오
$errorMessage = $errorMessages[$errno] ?? $defaultMessages[$errno] ?? 'An unexpected error occurred.';

// 출력 오류 메시지
echo '데이터베이스 오류: ' . $errorMessage;

?>

이러한 방식으로, 어떤 오류에 관계없이, 우리는 데이터베이스 오류의 원래 정보를 표시하지 않고 사용자에게 문제를 일으키는 적절한 오류 프롬프트를 제공 할 수 있습니다.

5. 요약

MySQLI :: $ errno 및 언어 패키지를 결합하여 현지화 된 데이터베이스 오류 프롬프트를 달성하는 것은 사용자 경험 및 국제화 지원을 향상시키는 효과적인 수단입니다. 다음 단계를 통해 응용 프로그램 에서이 기능을 구현할 수 있습니다.

  • mysqli :: $ errno 오류 코드를 캡처하십시오.

  • 언어 패키지 및 맵 오류 코드를 현지화 된 오류 프롬프트에 만듭니다.

  • 현재 사용자의 로케일 환경에 따르면 해당 언어 팩이 동적으로로드됩니다.

이 방법을 사용하면 응용 프로그램이 다른 언어로 사용자를 대면 할 때 항상 명확하고 이해하기 쉬운 오류 정보를 제공하도록합니다.