如何绕过php中的最大执行时间?

时间:2018-10-31 11:17:40

标签: php mysql

我知道这是一个丑陋的主意,但是我该如何绕过此最大执行错误。我不想配置在某些解决方案中阅读的任何.ini。

我有这段代码可以将csv上传到sql数据库,但是在上传大文件时,这使我一直报错。请帮助我修改代码专家

<?php
if(isset($_POST['submit'])) {
    $host = 'localhost';
    $user = 'root';
    $password = '';
    $db = 'jeremy_db';

    $con = mysqli_connect($host,$user,$password) or die('Could not' .mysqli_error($con));

    mysqli_select_db($con, $db) or die ('Could not' .mysqli_error($con));

    $file = $_FILES['file']['tmp_name'];
    $handle = fopen($file, "r");
    $c = 0;

    while(($csvdata = fgetcsv($handle,10000,","))!== FALSE){
        $sha1 = $csvdata[0];
        $vsdt = $csvdata[1];
        $trendx  = $csvdata[2];

        $sql = "INSERT INTO jeremy_table_trend (sha1,vsdt,trendx) VALUES ('$sha1','$vsdt','$trendx')";
        $query = mysqli_query($con , $sql);

        $c = $c+1;
    }
    if($query){
        echo "success"; 
    }
    else { 
        echo "error";
    }
}
?>

2 个答案:

答案 0 :(得分:0)

尝试

将此行添加到您的代码中

ini_set('max_execution_time', 300); //300 seconds = 5 minutes //whatever you want

取自How to increase maximum execution time in php

答案 1 :(得分:0)

在循环中执行插入语句非常昂贵。您可以尝试将csv文件直接转储到MySQL中,这将花费相对较少的执行时间。

Refer to this question