逗号在地址时将CSV文件导入MySQL的问题

时间:2013-03-21 06:02:11

标签: php mysql csv

我正在使用我在网上找到的脚本将CSV文件导入MySQL:http://www.johnboy.com/blog/tutorial-import-a-csv-file-using-php-and-mysql但是当脚本在单元格中的My address, CO 80113地址中检测到逗号时,它也会在那里分割同样。

我见过一个解决方案,你可以从excel保存到制表符分隔的txt文件。然后你进入记事本并用分号替换标签。

这是“修复地址中的逗号”问题的最佳做法吗?

我的最终目标是将数百个客户的Highrise的CSV文件放入我们的MySQL数据库,然后每隔几个月进行一次更新,这样这似乎是一个不错的脚本,但我是否采取了错误的方式?< / p>

编辑:看来PHP代码中拆分单元格的部分是

while ($data = fgetcsv($handle,1000,",","'")); 

2 个答案:

答案 0 :(得分:2)

如果您使用逗号作为列分隔符,则应引用所有字符串字段值,例如 -

1,'My address, CO 80113'
2,'His address, CO 80114'
4,'Her address, CO 80115'
and so on

尝试使用FIELDS 已包含'\''选项的LOAD DATA INFILE语句。

答案 1 :(得分:0)

逗号(',')是CSV文件的哈特,所以当你生成csv文件时,它会在逗号找到时分割单元格。

所以我认为你应该用空格或任何其他分隔符替换逗号。在为CSV生成最终代码时,可以使用PHP的默认函数 str_replace()