Загрузите CSV-файл с 50000 записями и вставьте данные в MySQL

Мне нужно загрузить CSV и импортировать эти данные в таблицу MySQL.

    public function insertData()
{
while (($column = fgetcsv($file, 10000, ",")) !== FALSE) {
$query = "INSERT into deleted_users (email)
values ('" . $column[0] . "');                $query->execute();
}
}

0

Решение

Возможно, самый быстрый способ массовой загрузки данных из PHP в MySQL — это использовать LOAD DATA инструмент, что-то вроде этого:

$sql = "LOAD DATA LOCAL INFILE 'path/to/yourfile.csv'
INTO TABLE deleted_users
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '\"'
LINES TERMINATED BY '\r\n'
(@col1)
SET email = @col1;";
mysqli_query($conn, $sql);

Этот ответ загружает записи только с email поле присваивается. Если вы хотите присвоить значение для id а также type столбцы, то вам потребуется файл CSV, содержащий эти значения.

0

Другие решения

Других решений пока нет …