我有一个命令行 PHP 脚本,它使用 ODBC 连接连接到 SQL Server 2005。它使用 odbc_exec() 执行可能需要一段时间才能处理的存储过程,我不希望它超时。
我一直无法在 PHP 文档中找到有关如何为 odbc_exec() 设置超时的任何内容。它是否默认为无限等待?
在这里你能做的只有这么多。PHP 的默认脚本执行时间设置为 30 秒。有很多方法可以改变这一点,包括set_time_limit()
函数(在手册中找到),以及通过 usingini_set
或 using延长执行时间odbc_setoption
//extend execution time
$num_minutes = 5;
ini_set('max_execution_time', (60*$num_minutes)); //set timeout to 5 minutes
您还可以在 php.ini 文件中更改此设置。但是,所有这些都只控制您的 apache 服务器可以控制的范围。如果数据库本身有超时,它仍然会中断你的调用并返回错误,即使你个人设置的执行时间增加了。
根据 php.net,您可以使用 odbc_setoption()
:
$result = odbc_prepare($conn, $sql);
odbc_setoption($result, 2, 0, 30);// 30 seconds timeout
odbc_execute($result);
因此,您可以根据需要将超时增加到更大的数字