PHP 응용 프로그램을 개발할 때 MySQLI :: Debug 메소드는 MySQL 데이터베이스의 연결 및 쿼리와 관련된 문제를 디버그하는 데 도움이됩니다. 그러나 경우에 따라 다음과 유사한 오류 메시지가 발생할 수 있습니다.
Fatal error: Uncaught mysqli_sql_exception: Invalid option string
이 오류는 일반적으로 mysqli :: debug 메소드의 매개 변수 전달에 문제가 있음을 나타냅니다. 이 기사에서는이 오류의 일반적인 원인을 탐색하고 솔루션을 제공합니다.
MySQLI :: Debug는 주로 개발자가 MySQL 데이터베이스와의 상호 작용을 이해하도록 돕기 위해 디버깅 정보를 표시하는 데 주로 사용되는 PHP 기능입니다. 이 방법은 디버깅 옵션이 포함 된 문자열로 전달하여 개발자가 데이터베이스 연결 및 쿼리에 대한 자세한 정보를 볼 수 있도록 도와줍니다.
예를 들어 다음 코드로 디버그 모드를 활성화 할 수 있습니다.
mysqli::debug("d:t:o,/tmp/mysql.trace");
이 코드는 데이터베이스 추적 기능을 활성화하고 출력 정보를 지정된 파일에 저장합니다.
유효하지 않은 옵션 문자열 오류가 발생하면 일반적으로 MySQLI :: 디버그 로 전달 된 문자열이 올바르지 않기 때문입니다. mysqli :: debug 의 매개 변수 요구 사항은 유효한 디버그 옵션 문자열입니다. 이 오류는 일반적으로 다음과 같은 상황에서 비롯됩니다.
mysqli :: debug 의 매개 변수는 특정 형식을 따라야합니다. 일반적으로 디버그 옵션 문자열에는 디버그 유형 (예 : D 데이터베이스를 나타냅니다), 출력 메소드 (예 : T는 파일의 출력을 나타냄) 및 기타 선택적 매개 변수가 포함되어야합니다. 문자열 형식이 요구 사항을 충족하지 않으면 오류 가보고됩니다.
Correct example:
mysqli::debug("d:t:o,/tmp/mysql.trace");
오류의 예 :
mysqli::debug("d:o,,/tmp/mysql.trace");
위의 코드는 필요한 매개 변수 또는 잘못된 구분 기호가 없기 때문에 잘못된 옵션 문자열 오류를 유발할 수 있습니다.
디버그 정보를 네트워크 주소에 출력 해야하는 경우 URL이 올바른 형식인지 확인하십시오. 예를 들어, 로그 파일을 서버에 업로드한다고 가정하지만 (예 : http://example.com/logs 와 같은) 형식이 잘못 기록되면 비슷한 오류가 발생할 수도 있습니다.
Correct example:
mysqli::debug("d:t:o,http://m66.net/logs/mysql.trace");
mysqli :: debug 의 매개 변수 순서는 매우 중요합니다. 모든 스왑 주문 실습으로 인해 프로그램이 옵션 문자열을 올바르게 구문 분석하지 못할 수 있습니다. 따라서 매개 변수 순서가 요구 사항을 충족하는 것이 중요합니다.
일부 이전 PHP 버전은 MySQLI :: 디버그 방법의 모든 기능을 완전히 지원하지 않을 수 있습니다. 이전 PHP 버전을 사용하는 경우이 문제를 피하기 위해 최신 버전으로 업그레이드하는 것이 좋습니다.
위의 가능한 오류 원인의 경우 다음은 몇 가지 일반적인 솔루션입니다.
먼저 MySQLI :: Debug 로 전달한 옵션 문자열이 올바르게 형식화되어 있는지 확인하십시오. 일반적으로 디버깅 옵션은 다음 형식을 따라야합니다.
디버그 유형:출력 유형:옵션
예를 들어 다음은 유효한 디버그 옵션 문자열입니다.
mysqli::debug("d:t:o,/tmp/mysql.trace");
이 문자열에서 :
D는 데이터베이스 디버깅을 활성화하는 것을 의미합니다.
t는 파일에 대한 출력을 의미합니다.
O 는 출력 파일의 경로입니다.
디버그 정보를 서버에 업로드하려는 경우 URL이 올바른 형식인지 확인하십시오.
mysqli::debug("d:t:o,http://m66.net/logs/mysql.trace");
PHP 버전이 이전이고 특정 옵션을 지원하지 않을 수있는 경우 MySQLI :: Debug를 지원하는 최신 버전으로 업그레이드하는 것이 좋습니다. PHP 버전을 확인하고 업그레이드 할 수 있습니다.
php -v
위의 메소드가 문제를 해결하지 않으면 MySQLI :: Debug Call의 실패에 대한 자세한 내용은 PHP 오류 로그를 확인할 수 있습니다. 로그 파일을 통해 문제를 일으킬 수있는 다른 오류 메시지를 발견 할 수 있습니다.