我有一个 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 。