我可以包含另一个PHP脚本来继续for循环执行,以防止服务器超时,因为max_execution_time

时间:2013-11-06 14:52:33

标签: php mysql

我有一个php脚本,它通过函数调用将数据插入到数据库表中,该函数在for循环中。我想要120多次迭代,但由于max_execution_time = 30而且遗憾的是我无法在共享主机上更改或编辑php.ini文件。 由于脚本的执行停止在大约。 for循环的55-60次迭代。 我想如果我包含另一个php文件,如果,     包括( “script2.php”); 我可以从61继续for循环并在此脚本中以120结束。这样我就可以完成所有120次迭代。 如果我错了请纠正我,我是php的新手。

if (isset($_POST["roll"])&&isset($_POST["resultType"])){
    global $result;
    global $t;
    $result=new Parser($_POST["resultType"]);
    $n = $_POST["roll"];
    $t = substr($n, 0, strlen($n) - 3);
    $con=mysqli_connect("localhost","root","","rolltu");
    // Check connection
    if (mysqli_connect_errno())
    {
        echo "Failed to connect to MySQL: " . mysqli_connect_error();
    }
    // Create table
    $sql="CREATE TABLE $t(NAME CHAR(30),ROLL CHAR(30) NOT NULL,PRIMARY KEY(roll),Marks INT)";
    // Execute query
    if (mysqli_query($con,$sql))
    {
        echo "Table $t created successfully. <br>";
    }
    else
    {
        echo "Error creating table: " . mysqli_error($con);
        echo "<br>";
    }
    $arr = array($t,'000');
    $s = join("",$arr);
    $q ="$s";
    $c = 120;
    for($i = 0;$i <$c;$i++) {
    $q++;
    $result->requestResult($q);
    showResult();
    }
}

2 个答案:

答案 0 :(得分:0)

在脚本中使用以下内容:

set_time_limit($time);

http://php.net/manual/en/function.set-time-limit.php

  

最长执行时间,以秒为单位。如果设置为零,则不会施加时间限制。

答案 1 :(得分:0)

更改脚本中的最长执行时间:

ini_set("max_execution_time", $timeInSeconds);