2013-03-07 2 views
0

ODBC 연결을 사용하여 SQL Server 2005에 연결하는 명령 줄 PHP 스크립트가 있습니다. odbc_exec()를 사용하여 처리하는 데 시간이 걸릴 수있는 저장 프로 시저를 실행하며 시간 초과를 원하지 않습니다.PHP odbc_exec 시간 초과를 관리하는 방법은 무엇입니까?

odbc_exec()에 대한 시간 초과 설정 방법과 관련된 PHP 설명서에서 아무것도 찾을 수 없었습니다. 그것은 무한 대기로 기본 설정되어 있습니까?

답변

0

php.net에 따르면 당신은 odbc_setoption()를 사용할 수 있습니다

$result = odbc_prepare($conn, $sql); 
odbc_setoption($result, 2, 0, 30);// 30 seconds timeout 
odbc_execute($result); 

그래서 당신은 정말 여기에서 할 수 거기 당신의 필요

+0

오, 그래서 odbc_exec() 대신 odbc_execute()를 사용해야합니다. 나는 그것을 시도 할 것이다, 고마워! – Alan

+0

... 나는 그가 그 요점을 놓쳤다 고 생각한다. lol –

2

에 따라 약간의 더 큰 수에 제한 시간을 늘릴 수 있습니다. PHP의 기본 스크립트 실행 시간은 30 초로 설정됩니다. 이 (매뉴얼에 있음) set_time_limit() 기능을 포함하여이 설정을 변경하는 방법에는 여러 가지가 있으며, 또한 php.ini 파일 내부에이 설정을 변경할 수 있습니다 ini_set를 사용하거나 odbc_setoption

//extend execution time 
$num_minutes = 5; 
ini_set('max_execution_time', (60*$num_minutes)); //set timeout to 5 minutes 

를 사용하여 실행 시간을 연장. 그러나 이들 모두는 아파치 서버가 제어 할 수있는 범위 내에서만 범위를 제어한다. 데이타베이스 자체에 타임 아웃이있는 경우, 개인적으로 설정된 실행 시간이 상승해도 여전히 전화를 끊고 오류를 반환합니다.

+0

PHP를 일괄 적으로 사용하고 있으므로 CLI 버전에서는 max_execution_time을 0으로 하드 코딩합니다. – Alan

관련 문제