2011-09-12 1 views
1

실행에 약 10 분이 걸리는 쿼리가 하나 또는 두 개 있습니다.zend의 pdo_mssql에 시간 초과 설정

어떻게 시간 제한을 포함하도록 $ db 개체를 조작합니까?

$_SESSION['params'] = array(
'host'   => '127.0.0.1', 
'username'  => 'sa', 
'password'  => 'password', 
'dbname'   => 'schema', 
'driver_options'  => $options 
); 
$db = createConnection($_SESSION['params']); 

function createConnection($params){ 
    return Zend_Db::factory('Pdo_MSsql', $params); 
} 

답변

1

나는 PDO_MSSQL 어댑터에 익숙하지 해요,하지만 문서에 따르면, 당신은 어댑터에 특정 옵션을 추가 할 수 driver_options 매개 변수를 사용할 수 있습니다. 예 # 7 http://framework.zend.com/manual/en/zend.db.adapter.html#zend.db.adapter.connecting.parameters

시간 제한을 설정하는 매개 변수가있는 경우이 값을 설정할 수 있어야합니다.

편집 :

PDO::ATTR_TIMEOUT 속성이있는 것 같습니다. PHP 설명서에 따르면 :

PDO::ATTR_TIMEOUT : 제한 시간 (초)을 지정합니다. 모든 드라이버가이 옵션을 지원하는 것은 아니며 드라이버마다 드라이버의 의미가 다를 수 있습니다. 예를 들어 sqlite는 쓰기 가능한 잠금을 포기하기 전에이 시간 값까지 기다리지 만 다른 드라이버는이 값을 연결 또는 읽기 시간 초과 간격으로 해석 할 수 있습니다. int가 필요합니다.

EDIT2가 :

pdo_mssql 드라이버에 대한 사용자 지정 특성이있는 것 같습니다. this blog entry에 따르면

개발자는 연결 당과 문 당 PDO :: SQLSRV_ATTR_QUERY_TIMEOUT를 사용하여 쿼리 시간 제한을 설정하고 애플리케이션에서 더 나은 사용자 경험을 제공하는 데 악용 할 수 있습니다. 도움이

희망,

+0

PDO :: ATTR_TIMEOUT 나던은 pdo_mssql 드라이버 – Alex

+0

에 영향을 미칠 것으로 보인다 @ 알렉스 : 나는, 내 대답을 재 편집 PDO :: SQLSRV_ATTR_QUERY_TIMEOUT 속성있을 것 같습니다했습니다. 그래도 테스트하지 않았 으면 좋겠다. – dinopmi