PDO (예, 나는 아직도 oldschool mysql 드라이버입니다.)로 이동하는 것이 바쁩니다. 그리고 전에 예외를 사용한 적이 없습니다. 아래 코드는 내가 지금까지 이해하고있는 것을 기반으로합니다. 내 응용 프로그램에서 3 개의 별도 데이터베이스 연결을 만들 것이며, 이중 2 개는 mysql과 1 mssql이 될 것입니다 (따라서 다른 유형의 경우).예외적 인 예외를 이해하는데있어서 매우 좋지 않음.
문제는 잘못된 연결 값을 제공하더라도 스크립트를 계속 처리하고 계속해서 오류가없는 것처럼 "캐치"를 건너 뜁니다.
try {
if("condition" != "conditions") {
throw new Exception("Oops I did it again");
}
catch(Exceptions as e) {
echo $e->getMessage();
}
가 나는 또한 PDO는 예외 통해 내가 그나마 있도록하는 던져있을 것이라는 점을 이해하지만 그냥 작동하지 않습니다, 도움도 약간에게 저에 관해서는 더 감독을 적어주세요 : 나는 기초가되어야한다고 이해 나는이 개념에 대해 오해하고있는 무슨 :
$handler = new PDO("mysql:host".$cred['credentials']['server'].";dbname=".$cred['credentials']['database'].", ".$cred['credentials']['username'].",".$cred['credentials']['password']);
그리고 B가 있어야합니다
// connect(): Connect to a database (MySQL):
private function connect($cred) {
$type = $cred['type'];
if($type == "mysql") {
try {
$handler = new PDO("mysql:host".$cred['credentials']['server'].";dbname=".$cred['credentials']['database'].", ".$cred['credentials']['username'].",".$cred['credentials']['password']);
if($cred['errors'] == 'exception') {
$handler->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} elseif($cred['errors'] == 'warning') {
$handler->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
} else {
$handler->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_SILENT);
}
}
catch(PDOException $e) {
$this->informer("FATAL","An error has occured trying to connect to the connection (".$cred['name'].") -".$e->getMessage());
return false;
}
return $handler;
}
}
그리고'$ cred [ 'errors']'가''exception ''으로 설정되어 있다고 확신합니까? –