无法上传大型csv文件

时间:2016-09-15 22:27:05

标签: php csv

我编写了一个php脚本来从csv脚本中提取数据并将其插入到mysql数据库中。它完成了这项工作,但没有提取数据并插入数据库中以获取大型csv文件。(我尝试从一个包含40,000行的csv文件中提取和插入。当我用更小的(60行)测试它时,它没有工作但是工作了大小csv文件)。我没有收到任何错误消息。它只是不起作用。在调试过程中,我意识到甚至在选择一个大的csv文件后回显一个字符串并点击我的上传按钮也不起作用。我已经搜索并尝试了php.ini中的所有可能配置以及针对apache配置的LimitRequestBody以及直接在我的代码中设置配置都没有成功。一些帮助将不胜感激。我的代码如下。

    <?php

include ("connection.php");


if(isset($_POST["submit"]))
{

    ini_set('auto_detect_line_endings',TRUE);
    $file_name = $_FILES['file']['tmp_name'];
    $sql10 = "insert into upload (filename) values ('$file_name')";
    if(mysqli_query($conn, $sql10)){
        $last_id = mysqli_insert_id($conn);
        echo "New record created successfully. Last inserted ID is: " .$last_id;
    } 
    //mysqli_close($conn);
    $file = $_FILES['file']['tmp_name'];

    //ini_set("auto_detect_line_endings", true);
    $handle = fopen($file, "r");
    $c = 0;
    while(($filesop = fgetcsv($handle, ",")) !== false)
    {
        if ($c > 0) {

            $event_id = $filesop[0];
            $conf_session_id = $filesop[1];
            $service_provider_id = $filesop[2];
            $service_provider_id2 = $filesop[3];
            $billed_flag = $filesop[4];
            $offering_id = $filesop[5];
            $time_start = $filesop[6];
            $time_ended = $filesop[7];
            $duration = $filesop[8];
            $orig_calling_code = $filesop[9];
            $orig_area_code = $filesop[10];
            $termination_reason = $filesop[11];
            $rtp_encoding = $filesop[12];
            $rtp_clock_rate = $filesop[13];
            $sip_from = $filesop[14];
            $sip_to = $filesop[15];
            $sip_call_id = $filesop[16];
            $orig_nbr = $filesop[17];
            $dest_nbr = $filesop[18];
            $popd_account_number = $filesop[19];
            $intl_dest_flag = $filesop[20];
            $sip_status = $filesop[21];
            $gw_ip_ingress = $filesop[22];
            $gw_port_egress = $filesop[23];
            $phone_number = $filesop[24];
            $orig_flag = $filesop[25];
            $subscriber_sip_caller_id = $filesop[26];
            $orig_route_type = $filesop[27];
            $term_route_type = $filesop[28];
            $call_type = $filesop[29];
            $mny_BasePrice = $filesop[30];
            $call_cost = $filesop[31];
            $uploadID = $last_id;


            $sql11 = "insert into cdr (event_id, conf_session_id, service_provider_id, service_provider_id2, billed_flag, offering_id, time_start, time_ended, duration, orig_calling_code, orig_area_code, termination_reason, rtp_encoding, rtp_clock_rate, sip_from, sip_to, sip_call_id, orig_nbr, dest_nbr, popd_account_number, intl_dest_flag, sip_status, gw_ip_ingress, gw_port_egress, phone_number, orig_flag, subscriber_sip_caller_id, orig_route_type, term_route_type, call_type, mny_BasePrice, call_cost, uploadID, date_uploaded) values ('$event_id', '$conf_session_id', '$service_provider_id', '$service_provider_id2', '$billed_flag', '$offering_id', '$time_start', '$time_ended', '$duration', '$orig_calling_code', '$orig_area_code', '$termination_reason', '$rtp_encoding', '$rtp_clock_rate', '$sip_from', '$sip_to', '$sip_call_id', '$orig_nbr', '$dest_nbr', '$popd_account_number', '$intl_dest_flag', '$sip_status', '$gw_ip_ingress', '$gw_port_egress', '$phone_number', '$orig_flag', '$subscriber_sip_caller_id', '$orig_route_type', '$term_route_type', '$call_type', '$mny_BasePrice', '$call_cost', '$uploadID', CURRENT_DATE)";



            if(mysqli_query($conn, $sql11)){
                // $last_id = mysqli_insert_id($conn);
            // echo "New record created successfully. Last inserted ID is: " .$last_id;
                $updatequery = "UPDATE cdr JOIN client ON cdr.orig_nbr = client.phonenumber SET cdr.clientname = client.clientname";
                mysqli_query($conn, $updatequery);
            } else{
                echo "error: ".mysqli_error($conn);
            }


        }
        $c++;


    }






    fclose($handle) ;

}

&GT;

0 个答案:

没有答案