>데이터 베이스 >MySQL 튜토리얼 >PDO가 기본적으로 예외를 발생시키도록 하려면 어떻게 해야 합니까?

PDO가 기본적으로 예외를 발생시키도록 하려면 어떻게 해야 합니까?

Susan Sarandon
Susan Sarandon원래의
2024-11-28 05:26:18217검색

How Can I Make PDO Throw Exceptions by Default?

PDO 예외 처리 구성

개발자라면 기본적으로 PDO에서 예외가 발생하도록 하는 것을 선호할 수 있습니다. 이렇게 하면 데이터베이스 연결을 설정할 때마다 오류 처리 모드를 명시적으로 설정할 필요가 없습니다. $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION)를 사용하여 오류 모드를 수동으로 설정할 수 있지만 이를 기본 동작으로 만드는 방법이 있는지 궁금할 수 있습니다.

기본 예외 처리

안타깝게도 기본 예외 처리가 없습니다. 기본적으로 예외를 발생시키도록 PDO를 설정할 수 있는 php.ini 파일의 구성 파일 또는 옵션입니다. 이는 PHP가 오류 처리를 전체적으로 처리하고 PDO에만 국한되지 않기 때문입니다.

해결책

원하는 동작을 달성하려면 다음 두 가지 옵션이 있습니다.

1. 생성자 인수

오류 처리 모드를 포함하여 다양한 옵션을 PDO 생성자에 전달할 수 있습니다:

$pdo = new PDO('mysql:host=localhost;dbname=someDatabase', 'username', 'password', array(
  PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
));

2. 래퍼 클래스

또는 PDO를 확장하고 항상 오류 모드를 예외 모드로 설정하는 래퍼 클래스를 만들 수 있습니다.

class MyPDO extends PDO {
  public function __construct($dsn, $username, $password) {
    parent::__construct($dsn, $username, $password, array(
      PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
    ));
  }
}

이 접근 방식을 사용하면 사용자 정의 일반 PDO 클래스 대신 PDO 클래스를 사용하고 항상 예외 처리 동작을 얻습니다.

$pdo = new MyPDO('mysql:host=localhost;dbname=someDatabase', 'username', 'password');

위 내용은 PDO가 기본적으로 예외를 발생시키도록 하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.