2016-10-15 107 views
-2

我正在將4,000多個CSV文件導入到MySQL中。我使用的代碼對於大約前2,750個CSV文件來說工作得很好 - 數據插入MySQL就好了。但是,在這些前2,750個文件之後,即使(a)CSV中的數據格式/類型沒有改變,數據也沒有被插入到MySQL中(b)MySQL顯示數據插入成功,沒有錯誤。到底是怎麼回事?這可能與數據庫的大小有關 - 在2,750個CSV插入後大約大約180GB。相關代碼如下。爲什麼不將數據插入MySQL?

$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 [email protected],[email protected],[email protected],[email protected]"; 

$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

刪除2751 nth,然後再試一次。 – selami

+0

@selami試過了。不起作用。另外,所有的CSV在列,格式等方面完全相同 - 除了數據之外。 – user4951834

+0

可能會超時發生;嘗試增加它或將其設置爲零。 http://php.net/manual/en/function.set-time-limit.php或許'upload_max_filesize'可能在這裏玩,但我懷疑後者。 –

回答

0

我從來沒有弄清楚爲什麼會發生這種情況。我通過將CSV分解成不同的數據庫來解決我的問題,而不是將它們全部合併爲一個。

相關問題