PDO로 연결 시간 제한 설정
PDO를 사용하여 MySQL 서버에서 데이터를 가져오고 있습니다.MySQL 서버를 사용할 수 없는 경우 이 코드가 예외를 반환하는 데 정말 (상대적으로) 오래 걸립니다.
try {
$handle = new PDO($db_type . ':host='.$db_host.';dbname='.$db_name,$db_user,$db_pass);
// Tried using PDO::setAttribute and PDO::ATTR_TIMEOUT here
} catch(PDOException $e) {
echo $e->getMessage;
}
MySQL의 경우 예외가 발생하는 데 2분 이상 걸립니다(SQLSTATE[HY000] [2003] PostgreSQL에서 MySQL 서버에 연결할 수 없습니다(...). 30초(SQLSTATE[08006] [7] 시간 초과됨).
PDO::setAttribute 및 PDO::를 사용해 보았습니다.ATTR_TIMEOUT이 작동하지 않습니다.이 말이 되기 전에 문제가 발생하기 때문에 일리가 있다고 생각합니다.
DB에 연결하기 위한 시간 제한을 설정할 수 있는 방법이 있습니까? PDO가 아무것도 없다는 것을 깨닫기까지 2분/30초는 정말 긴 것 같습니다.
어디선가 이 일이 진행되는 것을 본 것 같은데, 아무리 찾아 볼 수가 없습니다.
$DBH = new PDO(
"mysql:host=$host;dbname=$dbname",
$username,
$password,
array(
PDO::ATTR_TIMEOUT => 5, // in seconds
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
)
);
PDO용 DBLIB 드라이버를 사용하고 있는데 옵션 전달을 지원하지 않습니다(경고).
이 문제를 해결하려면 다음을 편집할 수 있습니다.connection_timeout
자유 설정TDS 구성 파일 위치/etc/freetds/freetds.conf
(Ubuntu의 경우).
언급URL : https://stackoverflow.com/questions/21403082/setting-a-connect-timeout-with-pdo
'programing' 카테고리의 다른 글
민달팽이란 무엇입니까? (0) | 2023.08.22 |
---|---|
C 프로그래밍의 고정점 연산 (0) | 2023.08.22 |
Springs XmlBean Factory는 더 이상 사용되지 않습니다. (0) | 2023.08.22 |
MySQL Current_TIMESTAMP가 기본값으로 표시됨 (0) | 2023.08.22 |
PHP 사전 설정은 허용되는 숫자만 대체합니다. (0) | 2023.08.22 |