gpt4 book ai didi

php - 插入批量记录时脚本过期

转载 作者:太空宇宙 更新时间:2023-11-03 17:24:11 26 4
gpt4 key购买 nike

当我将批量记录从一个表插入到另一个表时遇到问题

所以过程是我有一个包含大量记录的 csv,我为此使用了 infile,工作正常。现在我必须将该记录插入到另一个表中,在许多字段上具有特定条件。

但是当向表脚本中插入记录时,脚本会在 30 秒 后过期。下面是我已经设置的。

set_time_limit(0);
ini_set('max_execution_time', 0);

并运行 phpinfo() 显示

Directive           Local Value   Master Value

max_execution_time 0 60

max_file_uploads 20 20

PHP Version 5.3.3

CentOS 6.7 install

在此先感谢您的帮助。

最佳答案

如果您有权访问您的 php.ini 文件,请更正其权限并进行相应的编辑。

您还可以在您的 public_html(根目录)中创建一个空的 php.ini,并只添加一行最长执行时间。

但另一种处理最大执行时间的方法是,您可以使用 set_time_limit() 添加到默认的 PHP 计时器,但不一定在第一行。它添加到计时器,它不像 php.ini 那样设置默认值,也如 PHP 文档所述,如果 php 在安全模式下运行,则不能使用 in。

如果您毕竟无法访问 php 配置,最好使用 set_time_limit() 来处理您的脚本。您可以为此目的制作一个时间实用程序管理器。当您认为时间用完时,请在脚本的核心使用 set_time_limit()。例如:

while(true)
{
if(get_time_of_my_script() == 25) // assuming php.ini's limit is 30 seconds
{
set_time_limit(20); // add 20 more seconds
}
}

function get_time_of_my_script()
{
// write something that calculates your execution time from the
// very first line till the invocation
// of the function
}

虽然你应该记住:

  • php的所有时序设置仅限于PHP内部。如果您执行 system() 调用,那么在它返回某些内容之前它不受 PHP 的控制。因此,如果您正在处理数据库,请确保数据库引擎的时序。

  • Apache/IIS 计时设置等其他环境设置通常会在一定时间后限制 PHP(尽管它们的默认值为 300 秒,这对您来说可能已经足够)。

关于php - 插入批量记录时脚本过期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33360678/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com