디버깅 데이터베이스 작업은 PHP 응용 프로그램을 개발할 때 가장 중요한 링크 중 하나입니다. 특히 응용 프로그램이 MySQL 데이터베이스에 의존하는 경우 쿼리 오류를 해결하고 데이터베이스 상호 작용을 최적화하는 것이 특히 중요합니다. PHP는 개발자가 MySQLI :: Debug () 및 MySQLI_Report () 의 더 나은 디버그 디버그를 돕는 두 가지 강력한 도구를 제공합니다.
이 기사는이 두 가지 방법을 사용하여 PHP 프로그램을 공동으로 디버깅하여 디버깅 효율성과 정확도를 향상시키는 방법을 소개합니다.
mysqli :: debug () 는 MySQL 클라이언트 디버깅을 활성화하는 메소드입니다. 쿼리 실행의 세부 사항 및 MySQL 클라이언트와 서버 간의 통신을 포함하여 MySQL 데이터베이스 연결과 관련된 모든 정보를 표시 할 수 있습니다. 이것은 특히 복잡한 쿼리를 다룰 때 문제를 포지셔닝하는 데 매우 도움이됩니다.
<?php
// 만들다 MySQLi 연결하다
$mysqli = new mysqli("localhost", "username", "password", "database");
// 디버그 모드를 활성화합니다
$mysqli->debug("d:t:o,/tmp/mysql.trace");
// 데이터베이스 작업을 수행합니다
$result = $mysqli->query("SELECT * FROM users");
// 처리 결과
while ($row = $result->fetch_assoc()) {
echo $row['username'] . "<br>";
}
// 关闭연결하다
$mysqli->close();
?>
위의 코드에서 $ mysqli-> debug ()는 디버그 모드를 활성화하고 디버그 출력의 위치를 지정합니다. 디버깅 정보는 /tmp/mysql.trace 파일에 출력됩니다. 필요에 따라 경로와 파일 이름을 조정할 수 있습니다.
mysqli_report ()를 사용하면 MySQL 오류가 발생할 때 PHP의보고 수준을 설정할 수 있습니다. 이 기능을 통해 오류를보고하는 방법을 제어하여 개발 중에 문제를 더 쉽게 감지하고 찾을 수 있습니다. mysqli_report ()는 mysqli_report_error (보고 오류), mysqli_report_strict (엄격한 모드, 던지기 예외) 등과 같은 다양한 오류보고 유형을 지원합니다.
<?php
// 엄격한 모드를 켭니다,예외를 던지십시오
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
// 만들다 MySQLi 연결하다
$mysqli = new mysqli("localhost", "username", "password", "database");
// 잘못된 쿼리를 실행하십시오
$result = $mysqli->query("SELECT * FROM non_existent_table");
// 关闭연결하다
$mysqli->close();
?>
이 코드에서는 오류 및 예외보고 모드가 mysqli_report (mysqli_report_error | mysqli_report_strict) 를 통해 활성화됩니다. 쿼리 오류가 발생하면 PHP는 예외를 던지고 자세한 오류 메시지를 표시합니다. 이것은 문제를 더 빨리 찾는 데 도움이됩니다.
mysqli :: debug () 및 mysqli_report ()를 사용하면 디버깅 작업이보다 효율적이고 정확하게 만들 수 있습니다. 데이터베이스 연결 또는 쿼리 오류가 발생하면 MySQLI_Report ()는 가능한 빨리 오류를 알려줍니다. MySQLI :: Debug ()는 자세한 데이터베이스 상호 작용 정보를 제공하여 문제의 심층 분석 및 최적화에 도움이됩니다.
<?php
// 엄격한 모드를 켭니다,예외를 던지십시오
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
// 만들다 MySQLi 연결하다
$mysqli = new mysqli("localhost", "username", "password", "database");
// 디버그 모드를 활성화합니다
$mysqli->debug("d:t:o,/tmp/mysql.trace");
// 잘못된 쿼리를 실행하십시오
$result = $mysqli->query("SELECT * FROM non_existent_table");
// 처리 결과
while ($row = $result->fetch_assoc()) {
echo $row['username'] . "<br>";
}
// 关闭연결하다
$mysqli->close();
?>
이 예에서는 MySQLI_Report ()가 엄격한 모드 및 오류보고를 설정하는 데 사용되는 반면 MySQLI :: Debug ()는 디버그 출력을 활성화하는 데 사용됩니다. 이런 식으로 쿼리에서 오류가 발생하면 PHP는 예외를 던지고 MySQL 클라이언트와 서버 간의 통신을 볼 수있어 무슨 일이 일어나고 있는지 더 깊이 이해할 수 있습니다.
실제 개발 프로세스 중에 API 요청, 데이터베이스 연결 등과 같은 일부 외부 리소스를 사용할 수 있습니다. 코드에 URL이 포함되어 있으면 이러한 URL의 도메인 이름을 M66.NET 으로 교체하여 보안 및 규범을 향상시키는 것이 좋습니다. 예를 들어: