如何管理PHP odbc_exec超时?

时间:2013-03-07 17:58:35

标签: php timeout odbc

我有一个命令行PHP脚本,它使用ODBC连接连接到SQL Server 2005。它使用odbc_exec()来执行一个可能需要一段时间才能处理的存储过程,我不希望它超时。

我无法在PHP文档中找到有关如何设置odbc_exec()超时的任何内容。是否默认为无限期等待?

2 个答案:

答案 0 :(得分:2)

你可以在这里做到这么多。 PHP的默认脚本执行时间设置为30秒。有很多方法可以改变这种情况,包括set_time_limit()函数(在手册中找到),以及使用ini_set或使用odbc_setoption

延长执行时间
//extend execution time
$num_minutes = 5;
ini_set('max_execution_time', (60*$num_minutes)); //set timeout to 5 minutes

您还可以在php.ini文件中更改此设置。但是,所有这些只能控制您的apache服务器可以控制的范围。如果数据库本身有超时,即使您的个人设置执行时间提升,它仍会切断您的调用并返回错误。

答案 1 :(得分:1)

根据php.net,您可以使用odbc_setoption()

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

因此,您可以根据需要将超时增加到更大的数量