2016-10-15 2 views
-2

Я импортирую более 4000 CSV-файлов в MySQL. Код, который я использую, отлично работает для первых 2 750 файлов CSV - данные вставляются в MySQL просто отлично. Однако после этих первых 2750 файлов данные не вставляются в MySQL, хотя (а) формат/тип данных в CSV не изменился (b) MySQL показывает успешную вставку данных, без ошибок. Что происходит? Может ли это быть связано с размером базы данных - она ​​составляет около 180 ГБ после 2750 вставок CSV. Соответствующий код приведен ниже.Почему данные не вставляются в 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 n-й и повторите попытку. – selami

+0

@selami Пробовал, что. Не работает. Кроме того, все CSV одинаковы с точки зрения столбцов, формата и т. Д. - кроме данных в них. – user4951834

+0

Возможно, произойдет таймаут; попробуйте увеличить его или установить его на ноль. http://php.net/manual/en/function.set-time-limit.php и, возможно, 'upload_max_filesize' может играть здесь, но я сомневаюсь в последнем. –

ответ

0

Я никогда не понимал, почему это происходит. Я решил свою проблему, разбив CSV на разные базы данных, вместо того, чтобы помещать их в одно.

Смежные вопросы