我正在使用我在网上找到的脚本将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 回答
如果使用逗号作为列分隔符,则应引用所有字符串字段值,例如 -
尝试使用带有FIELDS ENCLOSED BY '''选项的LOAD DATA INFILE语句 .
逗号(',')是CSV文件的哈特,所以当你生成csv文件时,它会在找到逗号时分割单元格 .
所以我认为你应该用空格或任何其他分隔符替换逗号 . 您可以在为CSV生成最终代码时使用PHP的默认函数 str_replace() .