У меня есть CSV-файл, содержащий около 200 000–300 000 записей. Большинство записей можно разделить и вставить в базу данных MySQL с помощью простого
$line = explode("\n", $fileData);
, а затем значения, разделенные
$lineValues = explode(',', $line);
и затем вставляется в базу данных, используя правильный тип данных, то есть int, float, string, text и т. Д.
Однако у некоторых записей есть текстовый столбец, который включает в себя \ n в строке. Который ломается при использовании $ line = explode ("\ n", $ fileData); метод. Каждая строка данных, которая должна быть вставлена в базу данных, имеет приблизительно 216 столбцов. не каждая строка имеет запись с \ n в строке. Однако каждый раз, когда в строке находится \ n, он заключается в пару одинарных кавычек (')
каждая строка настроена в следующем формате:
id,data,data,data,text,more data
пример:
1,0,0,0,'Hello World,0
2,0,0,0,'Hello
World',0
3,0,0,0,'Hi',0
4,0,0,0,,0
Как видно из примера, большинство записей можно легко разделить с помощью методов, показанных выше. Это вторая запись в примере, которая вызывает проблему.
Новые строки только \ n, и файл вообще не включает \ r в файл.