让我们假设我有一个CSV文件中的以下行(我删除了在这个例子中,标题行):如何在实践中从CSV分割值文件到MySQL数据库
"500,000",2,50,2,90000
我有一个PHP脚本读取CSV文件,将文件分解成单独的行,并将每行存储在名为$ linearray的数组中。然后,我使用foreach循环分别查看每行。
在foreach循环,我打破行成使用下列功能不同的变量:
$line = str_replace("'","\'",$line);
从这里,我插入一个MySQL数据库中的值成单独的列。该脚本起作用。这些值被插入到数据库中,但我遇到了一个问题。我想:
"500,000" | 2 | 50 | 2 | 90000
但我得到这个:
"500 | 000" | 2 | 50 | 2 | 90000
的脚本是没有足够的智慧去了解它应该引号内跳过逗号。你知道我可以如何改变我的脚本,以确保我得到我期待的输出吗?
请注意,str_getcsv只适用于PHP 5.3及以上版本。对于较早的版本,将字符串“保存”到php://内存专用文件并使用fgetcsv解析它。不是说str_getcsv真的与这个问题有关,因为OP特别有一个文件,所以一次读一行可能是有道理的。 – 2010-06-17 07:06:18
@Emil是的,我只是向他展示了一个使用他已有的'$ line'变量的例子。在最后,我说明了他应该为csv文件做些什么。 – 2010-06-17 10:21:41