MySQLI 확장을 사용할 때 MySQLI :: Debug는 개발자가 MySQL 데이터베이스와 상호 작용할 때 세부 정보를 볼 수 있도록 매우 유용한 디버깅 도구입니다. mysqli :: debug를 호출하면 MySQL 쿼리의 실행 프로세스, 오류 정보 등을 인쇄 할 수 있습니다. 그러나 많은 개발자들은 mysqli :: debug를 사용할 때 응답이 없다는 것을 알게되었습니다. 이 기사는 문제가 무엇인지 알아 내기 위해 무효화의 몇 가지 일반적인 원인을 나열합니다.
mysqli :: debug는 mySQL의 디버깅 기능이 활성화되어 있는지 확인해야합니다. MySQL 구성이 디버깅을 활성화하지 않으면 MySQLI :: Debug를 호출 할 때 영향을 미치지 않습니다. MySQL 구성 파일 (일반적으로 my.cnf 또는 my.ini )에 디버깅이 활성화되어 있는지 확인하거나 다음 SQL 명령을 사용하여 디버깅 상태를 확인할 수 있습니다.
SHOW VARIABLES LIKE 'log_output';
log_output 변수의 값이 테이블 또는 파일 인지 확인하십시오. 그렇지 않으면 디버그 정보가 기록되지 않습니다.
MySQLI 연결을 만들 때 디버깅을 지원하지 않는 연결 방법을 사용하는 경우 MySQLI :: 디버그가 작동하지 않을 수 있습니다. 예를 들어, mysqli_connect () 메소드를 사용하여 데이터베이스에 연결하면 디버깅이 적용되지 않을 수 있습니다. 디버깅 기능의 정상적인 작동을 보장하려면 객체 지향 메소드를 사용하여 데이터베이스 연결을 작성하는 것이 좋습니다.
$mysqli = new mysqli('localhost', 'username', 'password', 'database');
$mysqli->debug("test");
여전히 mysqli_connect ()를 사용하는 경우 다른 구성을 확인하거나 객체 지향적 접근 방식으로 전환하십시오.
때로는 디버깅 정보가 로그 파일에 출력되거나 브라우저의 버퍼로 캐시되어 화면에서 직접 디버깅 출력을 볼 수 없습니다. 브라우저에 오류 메시지가 올바르게 표시되도록 php.ini 구성을 수정하려고 시도 할 수 있습니다.
php.ini 에서 다음 구성을 엽니 다 :
display_errors = On
error_reporting = E_ALL
동시에 PHP 출력이 버퍼링되지 않았 음을 확인하고 출력 버퍼링을 비활성화하거나 버퍼링을 지울 수 있습니다.
ob_end_flush();
코드가 mysqli :: debug (예 : 데이터베이스에 연결하는 URL)의 URL 출력을 사용하는 경우 잘못된 도메인 이름이 포함되어 있지 않은지 확인하십시오. 예를 들어, 그것은 다음과 같아야합니다.
$mysqli->real_connect("http://m66.net/dbconnect");
실수로 잘못된 URL을 사용했을 수도 있습니다. URL이 유효하고 MySQL 서비스와 일치하는지 확인하십시오. 연결 URL이 잘못되면 MySQLI :: 디버그 의 디버그 출력이 실패합니다.
MySQLI :: 디버그는 올바른 위치에서 호출되어야합니다. MySQL 쿼리를 실행하여 관련 디버그 정보를 캡처하고 인쇄하기 전에 호출해야합니다. 쿼리가 실행 된 후 호출하면 디버그 정보가 손실되었을 수 있습니다. 데이터베이스 작업을 수행하기 전에 사용하십시오.
$mysqli->debug("Debugging MySQL Query");
$query = "SELECT * FROM users";
$result = $mysqli->query($query);
mysqli :: debug는 주로 쿼리 실행 프로세스의 자세한 정보를 인쇄하는 데 사용됩니다. 쿼리가 정상이면 유용한 디버깅 정보를 출력하지 않을 수 있습니다. 쿼리가 실제로 문제가 있는지 확인하거나 더 복잡한 쿼리를 사용하여 더 많은 정보를 디버그하십시오.
여전히 디버그 출력을 볼 수없는 경우 브라우저 캐시 또는 서버 구성을 확인하십시오. 일부 서버는 출력을 캐시 할 수 있으므로 디버그 정보가 실시간으로 표시되지 않습니다. 브라우저 캐시를 지우거나 서버의 캐시 기능을 비활성화하면이 문제가 해결 될 수 있습니다.
mysqli :: debug 는 매우 유용한 도구이지만 모든 경우에 디버그 정보를 자동으로 출력하지는 않습니다. 응답이 없으면 위의 이유에 따라 하나씩 확인하고 구성을 조정하여 올바르게 작동하는지 확인할 수 있습니다. 정보를 디버깅하면 MySQL과 상호 작용할 때 발생할 수있는 잠재적 인 데이터베이스 연결 문제, 쿼리 문제 및 기타 오류를 발견하는 데 도움이 될 수 있습니다.
관련 태그:
mysqli