PDO에서 오류 메시지 추출
PDO 예외에서 오류 메시지를 얻으려고 할 때 빈 결과가 나오면 실망스러울 수 있습니다. 이 질문은 근본적인 문제를 자세히 조사하고 이 문제에 대한 해결책을 제공합니다.
오류 모드를 경고로 설정했음에도 불구하고 PDO 문과 해당 오류 정보는 빈 배열을 반환합니다. 문제는 setAttribute가 명령문 준비 중이 아니라 쿼리 실행 중 PDO의 동작에 영향을 미친다는 사실에서 비롯됩니다.
에뮬레이트된 준비된 명령문의 경우 prepare() 함수는 데이터베이스 서버와 상호 작용하지 않으므로 결과적으로 아무런 문제도 발생하지 않습니다. 오류 확인. 그러나 버전 4.1부터 MySQL에서 지원되는 기본 준비된 문을 사용하는 경우 오류 모드를 예외로 설정하면 쿼리 실행 시 예외가 트리거되어야 합니다.
이를 달성하려면 다음 코드를 사용하세요.
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
네이티브 준비된 명령문으로 전환하고 오류 모드를 올바르게 설정하면 이제 PDO 예외에서 유익한 오류 메시지를 얻을 수 있습니다.
위 내용은 내 PDO 오류 메시지가 비어 있는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!