Я импортирую более 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);
}
Удалить 2751 n-й и повторите попытку. – selami
@selami Пробовал, что. Не работает. Кроме того, все CSV одинаковы с точки зрения столбцов, формата и т. Д. - кроме данных в них. – user4951834
Возможно, произойдет таймаут; попробуйте увеличить его или установить его на ноль. http://php.net/manual/en/function.set-time-limit.php и, возможно, 'upload_max_filesize' может играть здесь, но я сомневаюсь в последнем. –