幕布斯6054654
count($bi1_values)在向其中添加任何内容之前,您会先进行检查。所以计数将始终为 0,并且您不会添加它。您应该无条件地将值行添加到数组中,然后使用计数来确定是否执行查询来插入所有这些行。您还拥有fclose($handle);内部循环,这将阻止读取文件的其余部分。应该是在循环完成之后。<?php// Starting clock time in seconds $time_start = microtime(true); include("../connexion.php");ini_set('max_execution_time', 54000);// $timestamp= date("y-m-d H:i");$timestamp = date("Y-m-d H:i:s");$dir = 'D:/xampp/htdocs/retail_BI/test/';$allFiles = scandir($dir);$dest = 'D:/xampp/htdocs/retail_BI/test/files/';foreach($allFiles as $file) { if (!in_array($file,array(".",".."))) { $file = $dir.$file; $filename = basename( $file ); if ( strpos( $filename, 'BI1_' ) === 0 ) { if (($handle = fopen("$filename", "r")) !== false) { //To remove BOM in the fist cell fseek($handle, 3); $bi1_values = array(); while (($data = fgetcsv($handle, 9000000, ";")) !== false) { if (empty(array_filter($data))) { continue; } $date = DateTime::createFromFormat('d/m/Y H:i:s A', $data[2]); if ($date === false) { break; } $date1 = $date->format('Y-m-d'); // 2020-07-07 $date2 = $date->format('Hi A'); // 1247 AM $bi1_values[] = "('$data[0]', '$data[1]','$date1','$date2','$data[3]','$data[4]','$data[5]','$data[6]','$data[7]','$data[8]','$data[9]','$data[10]','$data[11]')"; if (count($bi1_values) == 1000) { $query = "INSERT INTO dbo.Y2_Sales (storenumber, storename, date, time, TransRef, stylecode, color, size, quantity, unit_price, SalesExGST, cost, currency) VALUES " . implode(',', $bi1_values); $stmt = $conn->query( $query ); if (!$stmt) { $file1 = "erreur_BI1.txt"; file_put_contents($file1, $query . PHP_EOL, FILE_APPEND | LOCK_EX); // echo $conn->error; } } $bi1_values = array(); } } if (!empty($bi1_values)) { $query = "INSERT INTO dbo.Y2_Sales (storenumber, storename, date, time, TransRef, stylecode, color, size, quantity, unit_price, SalesExGST, cost, currency) VALUES " . implode(',', $bi1_values); $stmt = $conn->query( $query ); if (!$stmt) { $file1 = "erreur_BI1.txt"; file_put_contents($file1, $query . PHP_EOL, FILE_APPEND | LOCK_EX); // echo $conn->error; } } } fclose($handle); //Moving the file to another folder if(!rename($file, $dest . $filename)) { echo "error copy"; } } } else if ( strpos( $filename, 'BI2_' ) === 0 ) { if (($handle = fopen("$filename", "r")) !== false) { // To remove BOM in the fist cell fseek($handle, 3); $bi2_values = array(); while (($data = fgetcsv($handle, 9000000, ";")) !== false) { // print_r($data); if (empty(array_filter($data))) { continue; } $bi2_values[] = "('$data[0]', '$data[1]','$data[2]','$data[3]','$data[4]', '$timestamp')"; if (count($bi2_values) == 1000) { $query = "INSERT INTO dbo.Y2_Inventory (storenumber, stylecode, colour, size, units, timestamp) VALUES " . implode(',', $bi2_values); $stmt = $conn->query( $query ); if (!$stmt) { $file2 = "erreur_BI2.txt"; file_put_contents($file2, $query . PHP_EOL, FILE_APPEND | LOCK_EX); // echo $conn->error;} } $bi2_values = array(); } } if (!empty($bi2_values)) { $query = "INSERT INTO dbo.Y2_Inventory (storenumber, stylecode, colour, size, units, timestamp) VALUES " . implode(',', $bi2_values); $stmt = $conn->query( $query ); if (!$stmt) { $file2 = "erreur_BI2.txt"; file_put_contents($file2, $query . PHP_EOL, FILE_APPEND | LOCK_EX); // echo $conn->error;} } } fclose($handle); // Moving the file to another folder if(!rename($file, $dest . $filename)) { echo "error copy"; } } } }}$texte = "Process took ". number_format(microtime(true) - $time_start, 2). " seconds.";file_put_contents("time.txt", $texte, FILE_APPEND | LOCK_EX); echo "good !";?>