
기술문서
>PHP
php 8.1 pdo mssql connection timeout 지정 방법
![]() |
평점 | 10.0 | 라이센스 | free |
---|---|---|---|---|
사용자평점 | 10.0 | 운영체제 | ||
다운로드 | 1 | 파일크기 | 0 | |
제작사 | LUZENSOFT | 등록일 | 2025-09-21 21:08:04 | |
조회수 | 16 |
PHP 8.1에서 PDO_SQLSRV 드라이버를 사용하여 MSSQL에 연결할 때 연결 시간 초과를 해결하려면, DSN에 ConnectionTimeout
옵션을 추가하거나, PDO::__construct()
의 생성자에 ConnectionTimeout
키워드를 포함한 배열을 전달하여 연결 제한 시간을 설정해야 합니다. 연결 설정에 실패하면, DSN, 호스트 주소, 포트 번호, 사용자 이름, 암호 등 연결 정보가 올바른지, 방화벽이 연결을 차단하지 않는지, SQL Server 서비스가 실행 중인지 확인해야 합니다.
연결 제한 시간 설정 방법
PHP 8.1에서 PDO_SQLSRV 드라이버를 사용하면 다음과 같은 방법으로 연결 시간 초과를 설정할 수 있습니다.
DSN에서 설정:
DSN 문자열에
ConnectionTimeout=<초>
형식으로 연결 시간 제한을 지정합니다.php
$dsn = "sqlsrv:Server=서버주소,포트;Database=데이터베이스명;ConnectionTimeout=30"; // 30초로 설정 $options = [ PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, ]; $dbh = new PDO($dsn, "사용자", "암호", $options);
생성자에 옵션 배열 전달:
PDO::__construct()
메서드에ConnectionTimeout
키를 포함한 배열을 전달하여 제한 시간을 설정합니다.php
$serverName = "서버주소"; $databaseName = "데이터베이스명"; $uid = "사용자"; $pwd = "암호"; $connectionOptions = [ "ConnectionTimeout" => 30, // 30초로 설정 "Encrypt" => true, "TrustServerCertificate" => false, ]; $conn = new PDO( "sqlsrv:Server=$serverName;Database=$databaseName", $uid, $pwd, $connectionOptions );
연결 시간 초과 문제 해결 단계
시간 초과 오류가 발생하면 다음과 같은 사항들을 확인해 보세요.
DSN 및 연결 정보 확인:
서버 주소 및 포트:
sqlsrv
DSN에서 서버의 이름 또는 IP 주소와 포트 번호가 올바르게 지정되었는지 확인합니다.데이터베이스 이름, 사용자, 암호: 연결에 사용되는 사용자 이름과 암호가 유효한지 확인합니다.
네트워크 및 방화벽 확인:
PHP 스크립트가 실행되는 환경(서버, 컨테이너 등)에서 SQL Server로의 네트워크 연결이 가능한지 확인합니다.
SQL Server 방화벽 또는 네트워크 방화벽에서 해당 포트(기본 1433)로의 연결이 허용되었는지 확인합니다.
SQL Server 상태 확인:
대상 SQL Server 인스턴스가 실행 중이고, 연결 요청을 수신하고 있는지 확인합니다.
ODBC 드라이버 버전 확인:
Microsoft Drivers for PHP for SQL Server는 특정 버전의 ODBC 드라이버를 요구할 수 있습니다. 사용 중인 ODBC 드라이버가 드라이버 릴리스 노트에서 요구하는 버전 이상인지 확인합니다.
기간,수량별 추가50%할인, KT초고속IP, 블로그,지식인,쇼핑,지도 마케팅 가능