현재 위치: > 최신 기사 목록> mysqli_stmt :: $ 오류로 자동 오류 로깅 시스템을 구축하는 방법

mysqli_stmt :: $ 오류로 자동 오류 로깅 시스템을 구축하는 방법

gitbox 2025-05-19

웹 응용 프로그램을 개발할 때 특히 대규모 프로젝트에서는 데이터베이스 작업을 처리 할 때 오류 로깅이 중요합니다. 오류 추적 및 해상도는 시스템 안정성 및 사용자 경험을 크게 향상시킬 수 있습니다. PHP의 MySQLI Extension은 매우 유용한 기능인 MySQLI_STMT :: $ 오류를 제공하므로 데이터베이스 작업 및 로그 레코드에서 오류를 쉽게 포착 할 수 있습니다.

이 기사는 MySQLI_STMT :: $ 오류 함수를 사용하여 자동 오류 로깅 시스템을 구축하고 데이터베이스 작업 오류를 실시간으로 모니터링하는 방법을 소개합니다. 이 방법을 통해 오류가 발생하면 시스템이 신속하게 응답하고 자세한 오류 정보를 기록하여 후속 문제 해결 및 수리를 용이하게 할 수 있습니다.

1. mysqli_stmt :: $ 오류 함수를 이해하십시오

MySQLI_STMT :: $ ERRORMySQLI_STMT 클래스의 속성이며, 마지막 MySQLI_STMT Query 작업의 오류 메시지를 반환하는 데 사용됩니다. 쿼리가 성공적으로 실행되면 속성이 비어 있습니다. 쿼리에서 오류가 발생하면 속성은 오류 설명을 반환합니다. 이 속성을 통해 MySQL이 문을 실행할 때 오류 메시지를 캡처 할 수 있습니다.

 // 예:사용 mysqli_stmt::$error 캡처 오류 메시지
if ($stmt->execute()) {
    echo "쿼리 성공!";
} else {
    echo "오류 메시지: " . $stmt->error;
}

2. 자동 오류 로깅 시스템을 구축하십시오

데이터베이스 작업 오류를 자동으로 로그하려면 모든 데이터베이스 작업 오류를 캡처하고 로그 파일에 로그인하는 간단한 오류 로그 시스템을 작성할 수 있습니다. 다음은 MySQLI_STMT :: $ 오류를 사용하여 데이터베이스 오류를 기록하는 방법을 보여주는 간단한 PHP 예입니다.

 <?php

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

// 연결이 성공했는지 확인하십시오
if ($mysqli->connect_error) {
    die("연결이 실패했습니다: " . $mysqli->connect_error);
}

// 기능:로그 오류 로그 파일에 오류가 발생합니다
function log_error($message) {
    $logFile = '/path/to/log/error_log.txt'; // 로그 파일 경로
    $date = date("Y-m-d H:i:s");
    $logMessage = "[$date] - $message\n";
    file_put_contents($logFile, $logMessage, FILE_APPEND);
}

// 준비하다 SQL 질문
$query = "SELECT * FROM users WHERE id = ?";
$stmt = $mysqli->prepare($query);

if ($stmt === false) {
    // 만약에 SQL 语句준비하다失败,기록 오류
    log_error("SQL 준비하다失败: " . $mysqli->error);
    die("SQL 실수: " . $mysqli->error);
}

// 绑定参数并执行질문
$id = 1;
$stmt->bind_param("i", $id);

if (!$stmt->execute()) {
    // 만약에질문执行失败,기록 오류
    log_error("질문执行失败: " . $stmt->error);
    die("질문失败: " . $stmt->error);
}

// 결과를 얻고 처리하십시오
$result = $stmt->get_result();
if ($result->num_rows > 0) {
    // 출력 데이터
    while ($row = $result->fetch_assoc()) {
        echo "사용자ID: " . $row["id"] . " - 이름: " . $row["name"] . "<br>";
    }
} else {
    echo "데이터가 발견되지 않았습니다";
}

// 명세서 및 데이터베이스 연결을 닫습니다
$stmt->close();
$mysqli->close();

?>

코드 설명 :

  1. 데이터베이스 연결 : 새 MySQLI ()를 사용하여 데이터베이스에 연결하고 연결이 성공했는지 확인하십시오.

  2. 로깅 기능 : log_error () 함수는 지정된 로그 파일에 오류 정보를 추가합니다.

  3. SQL 쿼리 실행 : repary () , bind_param ()을 통해 SQL 쿼리 준비 매개 변수를 바인딩하고 Execute ()를 실행하고 실행이 실패 할 때 오류 정보를 기록하기 위해 mysqli_stmt :: $ 오류를 사용합니다.

  4. 출력 결과 : 쿼리가 성공하면 결과가 출력됩니다. 데이터가 반환되지 않으면 "데이터를 찾지 못했습니다".

3. 데이터베이스 작동 오류의 실시간 모니터링

데이터베이스 작업에서 실시간으로 오류를 모니터링하려면 로그 파일에 오류 정보를 작성할 수 있으며 로그 파일을 적시에 확인하여 실시간 오류 정보를 얻을 수 있습니다. 다음은 PHP를 사용하여 오류 로그를 읽고 프론트 엔드에 오류 메시지를 표시하는 예입니다.

예 : 오류 로그의 실시간 모니터링

 <?php

// 로그 파일을 실시간으로 읽으십시오
function get_recent_errors($logFile) {
    $errors = file_get_contents($logFile);
    return nl2br($errors); // 라인 브레이크를 변환합니다 HTML 라인 브레이크
}

$logFile = '/path/to/log/error_log.txt';
$recentErrors = get_recent_errors($logFile);

echo "<h2>最近的数据库操作실수:</h2>";
echo "<pre>$recentErrors</pre>";

?>

코드 설명 :

  1. 로그 파일 읽기 : file_get_contents ()를 통해 로그 파일의 내용을 읽으십시오.

  2. 오류 메시지 표시 : 페이지 로그에 내용을 표시하고 NL2BR () 함수를 통해 NELLINE을 HTML <br> 태그로 변환하여 읽기 쉽게 할 수 있도록합니다.

4. 요약

위의 방법을 사용하면 PHP의 MySQLI_STMT :: $ 오류 함수를 사용하여 데이터베이스 작업에서 오류를 쉽게 포착하고 기록 할 수 있습니다. 자동 오류 로깅 시스템 및 실시간 모니터링과 결합하여 데이터베이스 작업에서 문제를 즉시 발견하고 수정할 수 있습니다. 이는 개발 효율성을 향상시킬뿐만 아니라 생산 환경의 시스템 예외에 신속하게 대응하는 데 도움이됩니다.

실제 개발에서는 이메일을 통해 개발자에게 알리고 데이터베이스를 사용하여 오류 정보를 기록하는 등 필요에 따라 시스템을 추가로 확장 할 수 있습니다.