0

我有一个 php 表单,用户向我显示他们收到了一个致命错误:

Maximum execution time of 30 seconds exceeded in C:\Program Files\Apache2.2\htdocs\eeallparts\registration.php on line 282.  

奇怪的是,他们再次重新提交了表单,并且表单按照应该将数据插入数据库的方式工作,因此这不是一个一致的错误。我在表单上收到了很多提交(其中相当一部分是垃圾邮件),所以我知道该表单通常有效,但这个随机错误显然困扰着我。

我去了 282 行,我唯一看到的是:

if(!$insertContact_query = mssql_query($sql)) {     

我阅读了一些与此相关的其他线程,这些线程建议查看设置的时间限制。如果查询只需要太长时间,查询实际上不会总是超时而不是定期超时吗?我让用户在表单中重新提交了相同的信息,并且第二次成功了?

4

1 回答 1

1

时间限制不包括在任何外部数据源上花费的时间,例如查询数据库所需的时间。

set_time_limit() 函数和配置指令 max_execution_time 只影响脚本本身的执行时间。在确定脚本运行的最长时间时,不包括在脚本执行之外发生的任何活动所花费的时间,例如使用 system() 的系统调用、流操作、数据库查询等。在测量时间是真实的 Windows 上,情况并非如此。

如果查询返回大型数据集,它可能只是在处理集合期间超时。如果可能,请使用 php 配置文件来指示瓶颈。

于 2012-08-28T15:13:02.197 回答