我正在将超过4,000个CSV文件导入MySQL。我正在使用的代码完全适用于前2,750个CSV文件 - 数据插入MySQL就好了。但是,在最初的2,750个文件之后,数据没有被插入到MySQL中,即使(a)CSV中的数据格式/类型没有改变(b)MySQL显示成功的数据插入,没有错误。到底是怎么回事?这可能与数据库的大小有关 - 在2,750个CSV插入后大约180 GB。相关代码如下。
$query = "LOAD DATA LOCAL INFILE '$csvfilelocation' INTO TABLE xxx FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n' IGNORE 1 LINES (@col1,@col2,@dummy,@dummy,@col5,@col6) set abc=@col1,efg=@col2,hij=@col5,klm=@col6";
$status = mysqli_query($con,$query) or die(mysqli_error($con));
//If successful insert, mark the CSV as imported
$filename = $csvfilelocation;
if ($status) {
$stmt = mysqli_prepare($con, "UPDATE xxx_list SET putindatabase = 1 WHERE filename = ?");
mysqli_stmt_bind_param($stmt, "s", $filename);
mysqli_stmt_execute($stmt);
mysqli_stmt_close($stmt);
}
答案 0 :(得分:0)
我从未弄清楚为什么会这样。我通过将CSV拆分为不同的数据库而不是将它们全部放在一起来解决了我的问题。