如何在目录中搜索并在数据库中保存许多记录-php错误


How to search in directory and save in database many records - php error

我试图在目录中搜索一些图片,然后将它们插入数据库。但首先,目录中的图片很多——35000张,我应该在这个目录中搜索所有的优惠——也就是10000张。显示错误:

超过30秒的最大执行时间

我该怎么做?

我正在按模式搜索-按$segment-即报价id:

if ($dh = opendir($dir))
{
    $array = array();
    while (($file = readdir($dh)) !== false)
    {
        $s = substr($file, strpos($file, $segment), strlen($segment));
        if($s == $segment) {
            $array[] = $file;
        }
        foreach($array as $key) {
            $sql = new sql();
            $sql->query("INSERT INTO offers_images(offer_id, offer_filename) Values ('".$segment."', '".$key."') ");
        }
        closedir($dh);
    }
}

1)首先,简单的方法是:您可以尝试使用set_time_limit(0),但此选项可能在共享主机上禁用。你必须检查一下。

2) 对于小块数据,您可以一步一步地创建多个分离的"工作者"或一个类似"工作者"的对象。

3) 您可以为CLI模式编写php脚本(这些时间不受限制),并将其作为后台作业运行。

也许可以尝试通过模式搜索它们

(这样你会过滤到更少的文件)。

关注链接:glob