LOAD DATA LOCAL INFILE - 结果错误

时间:2015-06-08 11:24:42

标签: php mysql ajax csv

我目前正在创建一个解析和重新格式化多个CSV文件的系统,生成一个新的“主”CSV。然后使用LOAD DATA LOCAL INFILE(MySQL版本5.6.24)将此文件导入MySQL数据库。

目前 - 所有解析/处理都在JS / AJAX中进行,然后对php文件进行非常简单的发布,创建新的csv,然后发送到另一个处理数据库导入的php文件。

$thisDate = $_POST['whatDate'];
$table = "stats";
$csv = "dailySalesCSVs/" . $whatDate . "/" . $whatDate . ".csv";
 $query = "load data local infile '$csv'
        into table stats
        character set latin1
        fields terminated by ',' 
        enclosed by '\"' 
        lines terminated by '\r\n' 
        ignore 1 lines
        (Field1, Field2, Field3, Field4, Field5, Field6, Field7, Field8, Field9, Field10, Field11, Field12)";



$result = mysqli_query($con, $query);

这个新创建的“主”CSV中有728行 - 但是在导入时,会在表中插入1750行。在Workbench和MyAdmin中手动运行导入查询可以很好地工作。

1750不是728的倍数 - 所以我知道导入脚本不会被多次触发(我已经通过大量测试证实了这一点)。

我已经读过,当从AJAX触发LOAD DATA LOCAL INFILE查询时,会发生这样的一些错误 - 但这是我在这个问题上设法找到的唯一信息。

如果有人之前遇到过这种情况 - 任何指针都会非常感激

更新:----- 所有记录都已输入两次 - 尽管第一个字段(AUTO_INCREMENT ID字段)在插入正确的前728值后跳过大量“增量”。

1 个答案:

答案 0 :(得分:0)

最终,事实证明,这实际上是在运行两次,同时试图检查错误的响应,并被自动增量ID中的大跳过屏蔽。