현재 위치: > 최신 기사 목록> mysqli :: error_log ()가있는 디버그 사용자 정의 로그를 기록합니다

mysqli :: error_log ()가있는 디버그 사용자 정의 로그를 기록합니다

M66 2025-06-01

MySQL 데이터베이스 연결을 디버깅하는 것은 종종 PHP 응용 프로그램을 개발할 때 어려운 일입니다. 특히 복잡한 프로젝트에서는 데이터베이스 연결 오류, SQL 실행 문제 또는 기타 데이터베이스 관련 예외를 추적하는 것이 중요합니다. 개발자가 더 나은 디버그를 돕기 위해 PHP는 MySQLI 확장 및 MySQLI :: DebugError_Log () 와 같은 편리한 로깅 도구를 제공합니다.

이 기사는 mysqli :: debugerror_log () 함수를 결합하여 MySQL 연결 문제를보다 효과적으로 디버깅하여 사용자 정의 로그를 녹음하는 방법을 자세히 설명합니다.

1. mysqli :: debug를 이해하십시오

mysqli :: debug ()는 php에서 mysqli 클래스의 정적 메소드입니다. MySQL 디버깅 모드를 활성화하여 MySQL 쿼리에 대한 디버깅 정보를 출력 할 수 있습니다. 이러한 디버깅 정보는 SQL 쿼리의 실행 프로세스, 데이터베이스 연결 상태, 오류 메시지 등이 포함됩니다.

mysqli :: debug () 를 통해 MySQL 클라이언트에서 자세한 디버그 출력을 직접 얻을 수 있으며, 이는 데이터베이스 연결 및 쿼리 문제를 디버깅하는 데 매우 유용합니다.

2. 로그를 기록하려면 Error_Log ()를 사용하십시오

Error_Log () 는 PHP의 함수로 오류를 작성하거나 지정된 로그 파일에 정보를 디버그 할 수 있습니다. 기본적으로 Error_Log ()는 로그를 서버의 오류 로그에 기록하지만 로그의 출력 위치를 사용자 정의 할 수도 있습니다.

mysqli :: debug ()error_log () 를 결합하여 MySQL 디버깅 정보를 사용자 정의 로그 파일로 녹화하여 개발자가 문제를 분석하고 처리 할 수 ​​있도록 할 수 있습니다.

3. 구현 방법 : MySQL 디버깅 정보를 기록하십시오

다음으로 샘플 코드를 사용하여 mysqli :: debug ()error_log ()를 결합하여 디버그 정보를 지정된 로그 파일에 기록하는 방법을 보여줍니다.

샘플 코드 :

 <?php
// 디버그 모드를 활성화합니다
mysqli::debug("d:t:o,/tmp/mysql_debug.log"); // 로그 파일 스토리지 위치를 지정합니다

// 사용자 정의 로그 파일 경로를 설정합니다
$logFile = '/tmp/custom_mysql_debug.log';

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

// 检查연결하다是否成功
if ($mysqli->connect_error) {
    // 如果연결하다失败,사용자 정의 로그에 오류 메시지를 기록합니다
    error_log("MySQL Connection failed: " . $mysqli->connect_error, 3, $logFile);
} else {
    // 如果연결하다成功,디버깅 정보를 기록하십시오
    error_log("MySQL Connection successful!", 3, $logFile);
}

// 쿼리를 실행하십시오,디버깅 정보를 기록하십시오
$query = "SELECT * FROM users";
if ($result = $mysqli->query($query)) {
    error_log("Query executed successfully: " . $query, 3, $logFile);
} else {
    error_log("Query failed: " . $mysqli->error, 3, $logFile);
}

// 关闭연결하다
$mysqli->close();
?>

코드 구문 분석 :

  1. MySQL 디버깅 모드 켜기 : MySQLI :: Debug () 메소드를 통해 디버그 모드를 켜고 MySQL 디버깅 정보의 출력 위치를 지정합니다. 디버그 정보를 특정 파일에 출력하거나 다른 매개 변수를 통해 구성 할 수 있습니다.

  2. MySQL 데이터베이스에 연결 : 새로운 MySQLI ()를 통해 MySQL 데이터베이스 연결을 만듭니다. 연결이 실패하면 Error_Log ()을 사용하여 오류 메시지를 사용자 정의 로그 파일에 로그인합니다.

  3. 쿼리를 실행하고 로그를 기록합니다. 로그 : SQL 쿼리를 실행할 때 쿼리가 성공했는지 확인하십시오. 쿼리가 성공하면 쿼리 성공의 로그를 기록합니다. 실패하면 실패한 오류 메시지를 기록합니다.

  4. 데이터베이스 연결을 닫으십시오 : 작업을 완료 한 후 데이터베이스 연결을 닫으십시오.

4. MySQL 연결 문제 디버깅

개발 프로세스 중에 MySQL 연결 오류, 쿼리 실행 오류 등이 발생할 수 있습니다. 위 메소드에서 기록한 로그 파일은 문제의 근본 원인을 더 빨리 찾는 데 도움이됩니다. 예를 들어:

  • mysqli :: debug () 의 로그 출력이 MySQL 클라이언트와 연결 문제가 있음을 보여 주면 네트워크 구성, 데이터베이스 계정 권한 등을 확인할 수 있습니다.

  • 쿼리 실행이 실패하면 Error_Log () 에서 기록한 오류 정보는 구문 오류, 필드 이름 불일치 등과 같은 SQL 쿼리 문제를 찾는 데 도움이됩니다.

5. URL 교체

일부 응용 프로그램 시나리오에서는 URL 처리가 관련 될 수 있습니다. 특히 MySQL 쿼리와 관련된 응용 프로그램. 이 경우 URL의 도메인 이름을 URL을 저장, 출력 또는 처리 할 때와 같은 M66.net 으로 간단히 바꿀 수 있습니다.

예를 들어, SQL 쿼리를 실행 한 후 도메인 이름을 다음 방법으로 대체 할 수 있습니다.

 // 쿼리 결과가 있다고 가정하십시오 URL
$originalUrl = "http://example.com/page?id=123";
$modifiedUrl = str_replace("example.com", "m66.net", $originalUrl);
error_log("Modified URL: " . $modifiedUrl, 3, $logFile);

6. 요약

mysqli :: debug ()error_log ()를 결합하면 MySQL 디버그 정보를보다 효과적으로 로그인 하고이 정보를 로그 파일에 저장하여 개발 중에 데이터베이스 연결 및 쿼리 문제를 신속하게 찾을 수 있습니다. 또한 URL의 도메인 이름 교체 함수는 URL과 관련된 부품을 지정된 도메인 이름으로 편리하게 수정할 수 있습니다. 이러한 도구를 사용하면 디버깅 및 문제 해결 효율성을 크게 향상시킬 수 있습니다.

이 기사가 MySQL 연결 문제를 더 잘 디버깅하고 개발 프로세스를 최적화하는 데 도움이되기를 바랍니다.