현재 위치: > 최신 기사 목록> mysqli :: 디버그 정보를 사용자 정의 디버그 패널에 통합하십시오

mysqli :: 디버그 정보를 사용자 정의 디버그 패널에 통합하십시오

M66 2025-06-01

PHP에서는 데이터베이스 작업에 MySQLI를 사용할 때 SQL 문을 디버그하고 문제를 연결하는 것이 매우 중요합니다. MySQLI 클래스는 세부 디버깅 정보를 출력하는 데 도움이되는 디버그 방법을 제공하지만 기본적으로 출력은 비교적 흩어져 있고 통합 및보기가 어렵습니다. 이 기사는 MySQLI :: 디버그 의 정보 출력을 캡처하고 통합하여 디버깅 효율성을 향상시키는 방법을 소개합니다.

1. MySQLI :: Debug의 작동 방식을 이해하십시오

mysqli :: debug는 mysqli 확장자가 제공하는 정적 메소드이며, 지정된 파일 또는 출력 대상에 디버그 정보를 쓸 수 있습니다. 일반적인 사용은 다음과 같습니다.

 mysqli::debug('d:t:O,/path/to/debug.log');

여기서 매개 변수는 디버그 정보의 범주 및 출력 경로를 지정하는 문자열입니다. 예를 들어:

  • D : T : O는 디버그 레벨 및 출력 대상을 나타냅니다 (예 : 화면에 직접 출력)

  • /path/to/debug.log는 지정된 파일에 디버그 정보를 작성하는 것을 의미합니다

기본적으로 MySQLI :: Debug는 많은 기본 디버깅 정보를 출력하여 연결 또는 쿼리 문제를 쉽게 찾을 수 있습니다.

2. MySQLI 디버그 정보를 변수로 캡처하십시오

mysqli :: Debug는 기본적으로 정보를 직접 출력하며 문자열의 직접 반환을 지원하지 않습니다. 이 정보를 사용자 정의 디버그 패널에 통합하려면 후속 처리 및 디스플레이를 위해 "캡처"해야합니다.

이 방법은 PHP의 출력 버퍼링 메커니즘을 사용하여 출력을 캡처하는 것입니다 . OB_START ()OB_GET_CLEAN () :

 // 출력 버퍼링을 켭니다
ob_start();

// 시작 mysqli 디버그 출력
mysqli::debug('d:t:O');

// 버퍼 컨텐츠를 얻으십시오
$debugOutput = ob_get_clean();

이런 식으로 $ debugoutput 에는 디버그 정보가 포함되어 있으며, 이는 디버그 패널로 저장, 형식 또는 전달할 수 있습니다.

3. MySQLI 연결과 디버깅 정보를 결합합니다

다음은 MySQLI 연결 프로세스 및 디버깅 정보를 통합하는 데모 코드입니다.

 <?php
// 시작산출缓冲捕获 mysqli::debug 산출
ob_start();
mysqli::debug('d:t:O');  // 设定디버그 출력到当前缓冲区
$debugInfo = ob_get_clean();

// 데이터베이스에 연결하십시오
$mysqli = new mysqli('localhost', 'user', 'password', 'database');

if ($mysqli->connect_error) {
    echo "연결이 실패했습니다: " . $mysqli->connect_error;
} else {
    echo "연결이 성공적으로 연결됩니다!";
}

// 디버그 정보를 사용자 정의 디버그 패널에 전달하십시오(간단한 인쇄)
echo "<pre style='background:#f0f0f0;padding:10px;border:1px solid #ccc;'>";
echo "MySQLi Debug 정보:\n";
echo htmlspecialchars($debugInfo);
echo "</pre>";

4. 디버그 정보를 사용자 정의 패널에 통합하십시오

웹 기반 디버깅 패널이있는 경우 이러한 방식으로 캡처 된 디버깅 정보를 패널에 동적으로 주입 할 수 있습니다.

 <?php
// 가정 $debugPanel 디버그 패널 개체 또는HTML컨테이너
function addDebugInfoToPanel($info) {
    // 필요에 따라 포맷하거나 스타일을 추가 할 수 있습니다.
    $formatted = "<div class='debug-info' style='font-family: monospace; background:#222; color:#0f0; padding:10px; margin:10px 0;'>"
                 . nl2br(htmlspecialchars($info)) . "</div>";
    echo $formatted;
}

// 捕获并산출调试정보
ob_start();
mysqli::debug('d:t:O');
$debugOutput = ob_get_clean();

addDebugInfoToPanel($debugOutput);

이러한 방식으로 디버깅 정보는 디버깅 패널에 양식화되고 읽을 수있는 형태로 표시됩니다.

5. 추가 확장 : 디버그 정보 파일 관리

분석을 위해 디버그 정보를 파일에 작성하려면 mysqli :: debug 의 매개 변수를 지정할 수 있습니다.

 mysqli::debug('d:t:/var/log/mysqli_debug.log');

PHP 스크립트주기와 결합하여 로그 파일 컨텐츠를 정기적으로 읽고 편리한 기록 추적을 위해 디버그 패널로 푸시됩니다.

6. 주목할만한 것들

  • 디버깅 정보에는 민감한 데이터가 포함될 수 있으며 생산 환경에서이를 활성화하는 것이 좋습니다.

  • 출력 버퍼 캡처 방법은 빠른 개발 및 디버깅에 적합합니다. 복잡한 프로젝트에 특수 로그 관리 시스템을 사용하는 것이 좋습니다.

  • 실제 환경에 따라 파일 권한을 조정하여 로그 파일을 작성할 수 있는지 확인하십시오.

요약

PHP의 출력 버퍼링 기능을 사용하여 MySQLI :: Debug 의 디버그 출력을 캡처함으로써 이러한 기본 디버그 정보를 사용자 정의 디버그 패널에 유연하게 통합 할 수 있습니다. 이는 문제 조사 및 위치의 효율성을 크게 향상시키고 데이터베이스 작업의 디버깅 프로세스를보다 직관적이고 효율적으로 만듭니다.