我有一个命令行PHP脚本,它使用ODBC连接连接到SQL Server 2005。它使用odbc_exec()来执行一个可能需要一段时间才能处理的存储过程,我不希望它超时。
我无法在PHP文档中找到有关如何设置odbc_exec()超时的任何内容。是否默认为无限期等待?
答案 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);
因此,您可以根据需要将超时增加到更大的数量