반응형
기본적으로 예외를 허용하도록 PDO 설정
저는 항상 이렇게 PDO를 사용하기 때문에 오류가 발생할 경우 PDO에서 예외가 발생하기를 원합니다.
try {
$dbh = new PDO("mysql:host=$kdbhost;dbname=$kdbname",$kdbuser,$kdbpw);
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// some queries
}
catch (PDOException $e) {
error_log('PDO Exception: '.$e->getMessage());
die('PDO says no.');
}
PDO에서 기본적으로 예외를 적용할 수 있도록 편집할 수 있는 구성 파일이 있으면 좋을 것 같습니다. 가능한가요?
이 글을 원하는 이유는 매번 이 줄을 쓸 필요가 없기 때문입니다.
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
업데이트 - 그 이후로 데이터베이스 액세스를 처리하는 라이브러리를 만들었습니다(예외를 저장하도록 PDO 설정 포함).
setAttribute 함수를 생성자에 추가할 수 있습니다.
$pdo = new PDO('mysql:host=localhost;dbname=someDatabase', 'username', 'password', array(
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
));
그러나 php.ini 파일이나 다른 config 파일에 추가할 방법을 찾을 수 없습니다.
rdlowrey의 말을 인용하자면, 가장 쉬운 방법은 다음과 같습니다.
class MyPDO extends PDO {
public function __construct($dsn, $username = null, $password = null, array $driver_options = null) {
parent :: __construct($dsn, $username, $password, $driver_options);
$this->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
}
호출은 단순히 다음의 문제입니다.
$dbh = new MyPDO("mysql:host=$kdbhost;dbname=$kdbname",$kdbuser,$kdbpw);
언급URL : https://stackoverflow.com/questions/8992795/set-pdo-to-throw-exceptions-by-default
반응형
'programing' 카테고리의 다른 글
블로그 소프트웨어 - 워드프레스 대 블로그 엔진.NET 대 기타 항목 (0) | 2023.10.22 |
---|---|
도커 - 이미지에서 호스트로 파일을 복사하려면 어떻게 해야 합니까? (0) | 2023.10.22 |
각도/각도브라우저 탭이 백그라운드일 때 JS 업그레이드 앱이 응답하지 않음 (0) | 2023.10.22 |
레이지 로딩 각도RequireJS가 포함된 JS 모듈 (0) | 2023.10.22 |
문자 0 주변의 Alamofire 잘못된 값 (0) | 2023.10.22 |