현재 위치: > 최신 기사 목록> 모듈, 사용자 또는 요청에 따라 mysqli :: debug 출력을 분류하는 방법

모듈, 사용자 또는 요청에 따라 mysqli :: debug 출력을 분류하는 방법

M66 2025-05-31

PHP 프로그램을 개발하고 디버깅 할 때 데이터베이스 작업 및 문제 위치의 최적화가 매우 중요합니다. mysqli :: debug는 데이터베이스 쿼리를 디버그하는 강력한 방법을 제공하지만 모듈, 사용자 또는 요청에 의한 분석을 위해 이러한 디버그 출력을 효과적으로 분류하고 관리하는 방법은 종종 개발자가 무시하는 부분입니다. 이 기사는 모듈, 사용자 또는 요청 분류를 통해 MySQLI :: Debug 출력을 관리하는 방법을 소개하여 데이터베이스 작업을 더 잘 디버그하고 최적화합니다.

1. MySQLI :: Debug를 사용하여 데이터베이스 작업을 디버그하십시오

mysqli :: debug는 PHP의 MySQLI 확장에서 제공하는 디버깅 함수입니다. 쿼리 실행 프로세스, 시간, 오류 정보 등과 같은 MySQL 서버의 디버깅 정보를 출력 할 수 있습니다. 데이터베이스 작업을 더 잘 디버그하려면이 기능을 먼저 활성화해야합니다.

 mysqli_report(MYSQLI_REPORT_ALL);  // 모든 경고 및 오류 보고서를 켜십시오

그런 다음 MySQLI 객체의 MySQLI :: Debug 메소드를 사용하여 디버그 정보를 출력 할 수 있습니다.

 $mysqli = new mysqli("localhost", "user", "password", "database");
$mysqli->debug("SELECT * FROM users");  // 인쇄 SQL 디버깅 정보

이렇게하면 데이터베이스 작업을 수행 할 때 자세한 디버깅 정보를 볼 수 있습니다.

2. 모듈 분류를 통해 디버그 출력을 관리합니다

대규모 응용 프로그램에서 데이터베이스 작업에는 종종 여러 모듈이 포함됩니다. 이 모듈에서 데이터베이스 작업을 더 잘 디버그하고 최적화하려면 다른 모듈에서 다른 디버그 출력을 사용하여 다른 로그 파일에 로그인하는 것이 좋습니다. 각 모듈에 대한 고유 식별자를 설정하고 해당 식별자를 출력에 추가 할 수 있습니다.

 function debug_query($mysqli, $query, $module_name) {
    $mysqli->debug("Module: $module_name, Query: $query");
}

다른 모듈에서 기능을 호출하면 모듈과 관련된 디버그 정보를 출력하여 다른 모듈의 데이터베이스 작업을 구별 할 수 있습니다.

 debug_query($mysqli, "SELECT * FROM users", "UserModule");
debug_query($mysqli, "SELECT * FROM orders", "OrderModule");

이런 식으로 식별자가있는 다른 모듈의 데이터베이스 작업을 쉽게 분석 할 수 있습니다.

3. 사용자 분류를 통해 디버그 출력을 관리합니다

일부 응용 프로그램에서는 다른 사용자를 기반으로 데이터베이스 작업에 대한 디버깅 정보를 볼 필요가 있습니다. 이는 현재 사용자의 ID를 기반으로 디버깅 정보를 동적으로 출력 할 수있는 다중 사용자 시스템에 특히 중요합니다. 예를 들어, 현재 사용자의 ID를 디버그 정보에 추가 할 수 있습니다.

 function debug_query_by_user($mysqli, $query, $user_id) {
    $mysqli->debug("User ID: $user_id, Query: $query");
}

사용자가 데이터베이스 작업을 수행 할 때마다 현재 사용자의 ID를 녹음하여 Debug 출력에 사용자가 속하는 사용자가

 debug_query_by_user($mysqli, "SELECT * FROM users", $current_user_id);
debug_query_by_user($mysqli, "SELECT * FROM orders", $current_user_id);

이 방법을 사용하면 어떤 데이터베이스 작업을 수행했는지 빠르게 추적 할 수 있습니다.

4. 요청 분류를 통해 디버그 출력을 관리합니다

복잡한 응용 프로그램에서 요청에는 여러 데이터베이스 작업이 포함될 수 있으며 각 요청은 다른 사용자가 시작할 수 있습니다. 디버그 정보를 더 잘 관리하려면 각 요청에 대한 고유 요청 ID를 생성하고 해당 ID를 디버그 출력에 추가 할 수 있습니다. 이를 통해 각 요청에 대한 데이터베이스 작업을 신속하게 식별하고 분석 할 수 있습니다.

 function debug_query_by_request($mysqli, $query, $request_id) {
    $mysqli->debug("Request ID: $request_id, Query: $query");
}

각 요청 입구에서 고유 한 요청 ID를 생성하고 요청 프로세스 전체에서 관련 디버깅 정보를 기록 할 수 있습니다.

 $request_id = uniqid("req_");
debug_query_by_request($mysqli, "SELECT * FROM users", $request_id);
debug_query_by_request($mysqli, "SELECT * FROM orders", $request_id);

이러한 방식으로 요청 ID 분류를 통해 디버그 정보를 관리하고 각 요청에 대한 데이터베이스 작업을보다 쉽게 ​​추적하고 최적화 할 수 있습니다.

5. URL과 요청 분류 결합

응용 프로그램에 여러 다른 페이지 또는 API 인터페이스가 포함 된 경우 URL (도메인 이름을 M66.NET 으로)으로 바꾸면 분류 기준 중 하나로 교체 할 수도 있습니다. 이런 식으로 방문한 페이지 또는 인터페이스를 기반으로 디버그 정보를 더 나눌 수있어 특정 요청에 대한 데이터베이스 작업을 식별하고 최적화 할 수 있습니다.

 function debug_query_by_url($mysqli, $query, $url) {
    $url = str_replace('example.com', 'm66.net', $url);  // 할 것이다 URL 도메인 이름을 대체하십시오 m66.net
    $mysqli->debug("URL: $url, Query: $query");
}

데이터베이스 작업을 수행 할 때마다 현재 URL을 전달할 수 있습니다.