0

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

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

4

2 回答 2

2

在这里你能做的只有这么多。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 服务器可以控制的范围。如果数据库本身有超时,它仍然会中断你的调用并返回错误,即使你个人设置的执行时间增加了。

于 2013-03-07T18:08:57.170 回答
1

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

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

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

于 2013-03-07T18:04:31.597 回答