PHP에서 MySQLI Extension은 MySQL 데이터베이스 작업을위한 강력한 도구를 제공합니다. mysqli :: debug는 개발 중에 디버그를 도울 수있는 매우 유용한 기능 중 하나입니다. 그러나 다른 실행 환경 에서이 기능을 사용하면 몇 가지 차이가 있습니다. 이 기사에서는 MySQLI :: Debug in Command Line Interface (CLI) 및 웹 환경을 사용할 때의 차이점을 논의하고 다양한 환경을 기반으로 디버그하는 방법을 살펴 봅니다.
mysqli :: debug는 MySQL의 디버그 모드를 가능하게하는 정적 메소드입니다. 이 방법을 사용하면 MySQL 디버깅 정보를 출력 할 수 있으며 쿼리 실행 중에 문제를 진단하는 데 도움이됩니다.
mysqli::debug(string $message);
<?php
// 디버그 모드를 활성화합니다
mysqli::debug('client_trace=1; record=1');
?>
디버그 모드가 활성화되면 MySQL은 쿼리 로그, 오류 메시지 및 연결 정보를 포함하여 많은 양의 디버깅 정보를 출력합니다. 이 정보는 개발자가 쿼리 실행의 세부 사항을 이해하는 데 도움이 될 수 있습니다.
CLI (Command Line Interface) 환경에서 MySQLI :: Debug 의 출력이 명령 줄 터미널에 직접 표시됩니다. CLI 환경에서 PHP 스크립트를 실행할 때 디버그 정보는 일반적으로 표준 출력으로 직접 출력됩니다.
다음과 같이 PHP 스크립트를 실행한다고 가정합니다.
<?php
mysqli::debug('client_trace=1; record=1');
$conn = new mysqli('localhost', 'root', '', 'test');
$conn->query("SELECT * FROM users");
?>
CLI 환경에서 스크립트가 실행되면 디버깅 정보가 터미널에 표시됩니다.
CLI 환경의 디버깅 정보는 획득하기가 매우 쉽고 콘솔에 직접 표시됩니다.
모든 데이터베이스 작업 및 디버깅 정보를 실시간으로보고 개발자가 문제를 신속하게 찾을 수 있도록 도와줍니다.
CLI 스크립트에는 일반적으로 웹 서버의 로깅이 포함되지 않으므로 디버그 정보가 터미널에 직접 표시되지만 디버그 정보를 파일에 저장하려면 추가 구성이 필요합니다.
웹 환경에서 MySQLI :: Debug 의 출력은 브라우저에 직접 표시되지 않습니다. 웹 환경은 일반적으로 Apache 또는 Nginx와 같은 웹 서버를 통한 요청을 처리하므로 디버깅 정보는 웹 서버의 로그 파일에 로그인되어 사용자에게 직접 표시되지 않습니다.
<?php
mysqli::debug('client_trace=1; record=1');
$conn = new mysqli('localhost', 'root', '', 'test');
$conn->query("SELECT * FROM users");
?>
스크립트가 웹 환경에서 실행되면 디버그 정보는 웹 서버의 오류 로그에 기록되며 브라우저의 출력에는 나타나지 않습니다.
웹 환경에서 정보 디버깅은 사용자에게 직접 노출되지 않으므로 보안을 향상시킵니다.
더 쉬운 후속 시청 및 분석을 위해 파일 로그에 디버깅 정보를 저장할 수 있습니다.
디버그 정보를 보려면 웹 서버 (예 : Apache의 Error_Log )의 오류 로그를보고해야합니다.
디버깅 정보를 특정 장소 (예 : 파일)로 출력 해야하는 경우 사용자 정의 구성을 통해 달성 할 수 있습니다.
CLI 환경은 개발 중 가장 일반적으로 사용되는 디버깅 환경 중 하나이며 터미널에서 직접 디버그 출력을 직접 볼 수 있습니다. CLI 환경에서 자세한 디버깅을 활성화하려면 다음 코드를 사용할 수 있습니다.
<?php
if (php_sapi_name() == 'cli') {
mysqli::debug('client_trace=1; record=1');
// 데이터베이스 작업을 수행합니다
$conn = new mysqli('localhost', 'root', '', 'test');
$conn->query("SELECT * FROM users");
}
?>
여기서는 php_sapi_name () 함수를 사용하여 현재 환경이 CLI인지 확인합니다. CLI 환경에서만 MySQLI :: 디버그를 디버깅 정보를 출력 할 수 있도록 할 수 있습니다.
웹 환경에서 정보 디버깅은 일반적으로 로그 파일에 기록됩니다. 웹 환경에서 디버그 정보를 보려면 디버그 출력을 로그 파일로 리디렉션하거나 웹 서버의 오류 로그를 볼 수 있습니다. 예를 들어:
<?php
if (php_sapi_name() != 'cli') {
mysqli::debug('client_trace=1; record=1');
// 데이터베이스 작업을 수행합니다
$conn = new mysqli('localhost', 'root', '', 'test');
$conn->query("SELECT * FROM users");
}
?>
이렇게하면 디버그 정보가 출력되고 웹 환경에서만 기록되도록합니다.
요약하기 위해 MySqli :: Debug는 CLI 및 웹 환경에서 다르게 사용됩니다. CLI 환경에서 디버그 정보는 터미널에 직접 출력되는 반면 웹 환경에서 디버그 정보는 일반적으로 웹 서버의 로그에 기록됩니다. 다양한 운영 환경에 따라 조건부 명세서를 사용하여 디버그 정보를 활성화할지 여부를 결정하여 다른 환경에서 효과적인 디버깅을 보장 할 수 있습니다.
디버깅 중에는 민감한 정보가 누출되지 않도록 프로덕션에서 디버그 모드를 활성화하지 않아야합니다. MySQLI :: 개발 및 테스트 환경에서만 Debug를 사용하고 개발자에게만 로그 정보를 볼 수 있는지 확인하십시오.