PDO에서 오류 정보를 얻는 방법
PDO를 사용하면 설정에도 불구하고 오류 메시지가 표시되지 않는 상황이 발생할 수 있습니다. 오류 모드를 PDO::ERRMODE_WARNING 또는 PDO::ERRMODE_EXCEPTION으로 설정합니다. 이 문서에서는 이 동작의 원인을 자세히 알아보고 문제 해결을 위한 솔루션을 제공합니다.
오류 모드 설정 이해
PDO는 오류 모드에 대한 세 가지 옵션을 제공합니다. PDO ::ERRMODE_SILENT, PDO::ERRMODE_WARNING 및 PDO::ERRMODE_EXCEPTION. 기본적으로 PDO는 모든 오류 메시지를 표시하지 않는 PDO::ERRMODE_SILENT 모드에서 작동합니다. 모드를 PDO::ERRMODE_WARNING으로 설정하면 PDO가 오류 메시지를 PHP 경고로 표시하는 반면 PDO::ERRMODE_EXCEPTION은 오류에 대한 예외를 발생시킵니다.
예제 시나리오
예제 코드에서 잘못된 SQL 문(@$%T$!!!)을 준비하려고 시도했지만 실패했습니다. 오류 메시지를 검색합니다. 이는 기본적으로 사용되는 에뮬레이트된 준비된 문이 prepare() 단계 동안 구문 검사를 수행하지 않기 때문에 발생합니다. 결과적으로, 실행() 단계에서만 오류가 감지됩니다.
해결 방법
이 문제를 해결하려면 MySQL 드라이버가 기본 준비된 명령문을 지원하는지 확인해야 합니다. . 기본 준비된 문은 prepare() 단계에서 구문 검사를 수행하여 오류를 즉시 포착할 수 있도록 합니다. 기본 준비된 문을 활성화하려면 코드에 다음 줄을 추가하세요.
$dbh->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
또한 setAttribute() 메서드를 사용하여 오류 모드를 PDO::ERRMODE_EXCEPTION으로 설정할 수 있습니다. 이렇게 하면 PDO가 오류에 대한 예외를 발생시켜 코드에서 오류를 더 쉽게 처리할 수 있습니다.
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
네이티브 준비된 문을 사용하고 오류 모드를 PDO::ERRMODE_EXCEPTION으로 설정하면 PDO가 자세한 오류 메시지를 제공하여 데이터베이스 관련 문제를 효과적으로 진단하고 해결할 수 있습니다.
위 내용은 내 PDO 오류 메시지가 표시되지 않는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!