Я написал функцию в контроллере, используемом в Laravel Framework. Функция получает путь к файлу * .csv, а затем вставляет все элементы этого * .csv-файла с помощью инструкции raw bulk insert в базу данных. Проблема в том, что элементы не помещаются в таблицу базы данных при выполнении функции. У меня тоже нет ошибок. Когда я выполняю запрос в SQL Server Manager, он вставляет элементы без проблем. Что я делаю неправильно, и есть ли лучший способ для массового ввода элементов csv-файла в базу данных?Laravel Raw Bulk insert
Вот код для функции:
public static function bulkInsertCSV($filePath){
$sql = "use [testDatabase] BULK INSERT [dbo].[testTable]
FROM '" . $filePath . "' WITH (FIELDTERMINATOR = ';',"
. "ROWTERMINATOR = '\\n');";
//DB::statement($sql);
DB::statement(DB::raw($sql));
}
С наилучшими пожеланиями, Ялчин
Это было бы хорошим решением, но я забыл сказать, что csv может содержать до 1.000.000 строк с большим количеством столбцов. Я уже пробовал это с PHPExcel, и он очень медленный (около 10 минут для работы вставки). Ваше решение понадобилось около 7 минут. Его все еще слишком много. С BULK INSERT в SQL требуется около 1 мин. Так что ваше решение не то, что я ищу, но спасибо в любом случае :). – Yasemin