首页 文章

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

提问于
浏览
0

我正在使用我在网上找到的脚本将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数据库,然后每隔几个月进行一次更新,这样这似乎是一个不错的脚本,但我是否采取了错误的方式?

EDIT : It appears that the part of the PHP code that splits up the cells is this

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

2 回答

  • 0

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

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

    尝试使用带有FIELDS ENCLOSED BY '''选项的LOAD DATA INFILE语句 .

  • 2

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

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

相关问题