在PHPExcel上传数据后,从Excel数据库的控制是不出来的循环


In PHPExcel after uploading the data from Excel to database the control is not coming out of the loop

我正在尝试使用PHPExcel从excel上传数据到MySQL数据库。我的代码在本地主机工作良好,但在服务器时,它正在更新从excel到数据库的数据,但控制不出循环(不终止进程)。同样的代码是工作良好的excel文件作为3000行,但不是40000行。请帮帮我

foreach($sheetData as $str)
    {
        if($z == $chunk_s)
        {
            break;
        }
        $z++;
        if($i == 1)
        {
            $i++;
            $val1 = $str['A'];
            $val2 = $str['B'];
            $val3 = $str['C'];
            $val4 = $str['D'];
            $val5 = $str['E'];
            $val6 = $str['F'];
            $val7 = $str['G'];
            $val8 = $str['H'];
            $val9 = $str['I'];
            $val10 = $str['J'];
            //$val11 = $str['K'];
            $val12 = $str['K'];
            $val13 = $str['L'];
            $val14 = $str['M'];
            $val15 = $str['N'];
            $val16 = $str['O'];
            $val17 = $str['P'];
            $val18 = $str['Q'];
            $val19 = $str['R'];
            $val20 = $str['S'];
            $val21 = $str['T'];
            if($val1 == "Order Date" && $val2 == "No" && $val3 == "Customer No." && $val4 == "Bill-to Name" && $val5 == "Bill-to Contact" && $val6 == "Phone No." && $val7 == "Bill-to City" && $val8 == "E-Mail" && $val9 == "Item No." && $val10 == "Description" && $val12 == "Maximum Agreed Repair Amount" && $val13 == "Status" && $val14 == "Your Reference" && $val15 == "Fault Code" && $val16 == "Resolution Code" && $val17 == "CHAWAGO Code" && $val18 == "Expected Finishing Date" && $val19 == "Amount Including VAT" && $val20 == "Posted Invoice No." && $val21 == "AirWay Bill No.")
            {
            }
            else
            {
                echo "Invalid Excel File.";
                break;
            }
        }
        else
        {       
            $i++;   
            $val1 = $str['A'];
            $val2 = $str['B'];
            $val3 = $str['C'];
            $val4 = $str['D'];
            $val5 = $str['E'];
            $val6 = $str['F'];
            $val7 = $str['G'];
            $val8 = $str['H'];
            $val9 = $str['I'];
            $val10 = $str['J'];
            $val11 = "";
            $val12 = $str['K'];
            $val13 = $str['L'];
            $val14 = $str['M'];
            $val15 = $str['N'];
            $val16 = $str['O'];
            $val17 = $str['P'];
            $val18 = $str['Q'];
            $val19 = $str['R'];
            $val20 = $str['S'];
            $val21 = $str['T'];
            if($val1 == "END OF THE RECORD")
            {
                echo "End of the record is reached!<br /><br />";
                echo "<br />Number of New Records Added : " . $j . "<br />";
                echo "<br />Number of Updated Records  : " . $l . "<br />";
                echo "<br /><a href=''>Click here to go home.</a></pre>";
                exit;
                //break;
            }
            if($val1 == "" && $val2 == "" && $val3 == "" && $val4 == "" && $val5 == "" && $val6 == "" && $val7 == "" && $val8 == "" && $val9 == "" && $val10 == "" && $val12 == "" && $val13 == "" && $val14 == "" && $val15 == "" && $val16 == "" && $val17 == "" && $val18 == "" && $val19 == "" && $val20 == "" && $val21 == "")
            {
                echo "Blank row occurred. Please remove all the blank rows and start uploding the file.<br /><br />";
                echo "<br />Number of New Records Added : " . $j . "<br />";
                echo "<br />Number of Updated Records  : " . $l . "<br />";
                echo "<br /><a href=''>Click here to go home.</a></pre>";
                exit;
            }
            else
            {
                $res1 = mysql_query("select * from servicedetails where Number = '$val2' and Customer_No = '$val3'");
                $num = mysql_num_rows($res1);
                if($num == 0)
                {                
                    $res = mysql_query("INSERT INTO servicedetails (Order_Date, Number, Customer_No, Bill_to_Name, Bill_to_Contact, Phone_No, Bill_to_City, EMail, Item_No, Description, Repair_Status_Code, Maximum_Agreed_Repair_Amount, Status, Your_Reference, Fault_Code, Resolution_Code, CHAWAGO_Code, Expected_Finishing_Date, Amount_Including_VAT, Posted_Invoice_No, AirWay_Bill_No) VALUES ('$val1', '$val2', '$val3', '$val4', '$val5', '$val6', '$val7', '$val8', '$val9', '$val10', '$val11', '$val12', '$val13', '$val14', '$val15', '$val16', '$val17', '$val18', '$val19', '$val20', '$val21')");         
                    $j++;
                    if($j > $chunk_s)
                    {
                        echo "<br />Number of New Records Added : " . $j . "<br />";
                        echo "<br />Number of Updated Records  : " . $l . "<br />";
                        echo "<br /><a href=''>Click here to go home.</a></pre>";
                        exit;
                    }
                }
                else
                {
                    $res = mysql_query("update servicedetails set Status = '$val13' where Number = '$val2' and Customer_No = '$val3'");
                    $l++;
                    if($l > $chunk_s)
                    {
                        echo "<br />Number of New Records Added : " . $j . "<br />";
                        echo "<br />Number of Updated Records  : " . $l . "<br />";
                        echo "<br /><a href=''>Click here to go home.</a></pre>";
                        exit;
                    }
                }
            }
        }
    }

不好说。

  • 可能数据太多了?
  • 脚本超过php内存?
  • MySQL因为调用太多而终止?
  • 您的任何行都有值$val1 == "END OF THE RECORD吗?
  • $sheetdata.size();怎么说?
你说

控件未退出循环(未终止进程)

control是什么意思?