长时间的SQL结果后,执行突然停止

时间:2018-08-23 08:03:58

标签: php mysql database

我有一个简单的代码,可从数据库中提取记录。问题所在的特定部分在这里:

    while ($row = $results->fetch_array(MYSQLI_ASSOC))
    {
        $data[$count] = $row;
        $count++;
    } 

因此,我正在运行一个简单的SELECT SQL,期望从中获得约10万个结果。 如果while循环结束后,没有超过50k的结果,则什至没有var_dump

但是,如果我SELECT一行,则结果弹出。

我无权访问服务器配置。最长执行时间为60秒。

谢谢。

2 个答案:

答案 0 :(得分:2)

您还可以从您的php代码中更改php.ini的配置值。将其添加为函数的第一行

set_time_limit(0); 

它将max_execution_time的值更改为无限

答案 1 :(得分:0)

原来这是一个memory_limit问题,仅分配了256M。通过2048M将限制设置为ini_set('memory_limit', '2048M')可以解决此问题。

请记住,在PHP中执行set_time_limit(0)被认为是不好的做法,因为PHP解释器将无限运行。 [Source]如果脚本需要此命令,则需要对其进行优化。