현재 위치: > 최신 기사 목록> mysqli :: debug의 고급 구성 지침

mysqli :: debug의 고급 구성 지침

M66 2025-06-01

mysqli :: debug () 는 PHP에서 비교적 쓸모 없지만 매우 강력한 디버깅 도구입니다. 개발자는 기본 MySQLI 확장의 디버깅 기능을 활성화하여 연결, 쿼리 실행 등의 세부 사항을 분석 할 수 있습니다. PHP 8.1 이후 MySQLI :: Debug () 의 매개 변수 지원은 특히 트레이스 옵션이 더 유연합니다. 이는 개발자에게 더 강력한 사용자 정의 기능을 제공합니다.

이 기사에서는 mysqli :: debug () 추적 옵션의 사용 및 고급 구성 방법을 소개하고 몇 가지 예를 결합하여 목적을 더 잘 이해하는 데 도움이됩니다.

mysqli :: debug () 란 무엇입니까?

mysqli :: debug ()는 디버그 출력을 활성화하는 데 사용되는 메소드입니다. 실제로 mysqli_debug () 함수의 객체 지향 버전입니다. 디버깅 옵션을 지정하는 문자열 매개 변수를 허용합니다.

문법:

 mysqli::debug(string $options): bool

그중에서도 $ 옵션은 우리가 집중하고자하는 초점입니다 - 쉼표로 구분 된 디버그 설정 세트는 다음과 같습니다.

 mysqli::debug("d:t:o,/tmp/client.trace")

매개 변수에 대한 자세한 설명

디버그 문자열의 경우 몇 가지 일반적인 옵션이 다음과 같습니다.

  • 거절 가능한 디버깅

  • 테이블 트레이스 (트레이스)

  • o, <파일> 지정된 파일에 디버그 출력을 쓰십시오

  • i, <file> 지정된 파일에서 구성을 읽으십시오

  • f 레코드 기능 호출

  • 모든 전화 (더 많은 장황) 기록

  • n 네트워크 통신 콘텐츠 표시

이 옵션을 결합하여 MySQLI 실행에 대한 자세한 모니터링을 활성화 할 수 있습니다.

예 : 디버그 정보를 파일로 기록하십시오

디버그 정보를 서버의 /TMP 디렉토리에 로그인한다고 가정합니다.

 <?php
mysqli::debug("d:t:o,/tmp/mysqli.trace.log");

$mysqli = new mysqli("localhost", "user", "password", "database");

if ($mysqli->connect_error) {
    die("연결이 실패했습니다: " . $mysqli->connect_error);
}

$result = $mysqli->query("SELECT * FROM users");
while ($row = $result->fetch_assoc()) {
    print_r($row);
}

$mysqli->close();
?>

이 구성은 다음과 같습니다.

  • 디버깅 활성화 ( D )

  • 추적 기능 활성화 ( T )

  • 출력을 /tmp/mysqli.trace.log 에 저장하십시오

고급 추적 옵션 실용 기술

1. 레코드 세부 기능 호출 스택

 mysqli::debug("d:t:F:o,/tmp/trace_func.log");

F 매개 변수가 활성화되면 로그에는 각 MySQLI 함수에 대한 통화 스택이 포함되어있어 성능 병목 현상을 분석하는 데 특히 유용합니다.

2. 디버그 파일은 구성에서 나옵니다

구성 파일을 읽어 디버그 매개 변수를 미리 설정할 수 있습니다.

 // config.txt 콘텐츠:d:t:o,/tmp/from_config.log
mysqli::debug("i,/var/www/html/config.txt");

이는 하드 코딩을 피하고 유연성을 높이며 대규모 프로젝트 또는 디버그 배포 환경에 적합합니다.

3. 네트워크 패킷 추적 (주의해서 사용)

클라이언트와 서버 간의 커뮤니케이션에 문제가 있다고 의심되면 N을 활성화 할 수 있습니다.

 mysqli::debug("d:t:n:o,/tmp/net_debug.log");

참고 :이 옵션에 의해 생성 된 로그에는 민감한 데이터가 포함되어 있으며 엄격하게 보호해야합니다.

디버그 출력을 봅니다

디버그 로그가 생성 된 후 다음 명령을 통해 볼 수 있습니다.

 tail -f /tmp/mysqli.trace.log

생산 환경에서 사용하는 경우 로그 파일 경로를 전용 로그 디렉토리로 바꾸고 적절한 권한을 설정하는 것이 좋습니다.

사용 확장 : 웹 추적과 함께 사용하십시오

프론트 엔드 URL과 결합하여 로그를 다음과 같은 추적 ID와 연관시킬 수도 있습니다.

 $traceId = uniqid("trace_", true);
mysqli::debug("d:t:o,/tmp/$traceId.log");
header("X-Debug-Trace: https://m66.net/debug/$traceId.log");

이러한 방식으로 브라우저 개발자 도구에서 링크를 추적하고 문제를 신속하게 찾을 수 있습니다.

요약

mysqli :: debug () 의 추적 옵션은 개발자에게 강력한 디버깅 방법을 제공합니다. 추적 문자열을 합리적으로 구성하면 다음을 달성 할 수 있습니다.

  • 기능 호출 분석

  • 네트워크 디버깅

  • 중앙 집중식 로그 관리

  • 구성 파일의 확장 성과 결합

개발 및 테스트 단계에서 이러한 추적 옵션을 잘 활용하면 많은 문제 해결 시간을 절약 할뿐만 아니라 PHP와 MySQL 간의 상호 작용 메커니즘을 더 깊이 이해하는 데 도움이됩니다.