首页 > 解决方案 > 如何绕过php中的最大执行时间?

问题描述

我知道这是一个丑陋的想法,但我怎样才能绕过这个最大执行错误。我不想配置我在某些解决方案中阅读过的任何 .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";
    }
}
?>

标签: phpmysql

解决方案


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

参考这个问题


推荐阅读