2013-03-21 148 views
0

我使用的腳本可以在線找到導入CSV文件到MySQL:http://www.johnboy.com/blog/tutorial-import-a-csv-file-using-php-and-mysql但是當腳本在一個單元格中的地址My address, CO 80113中檢測到逗號時,也在那裏分裂。CSV格式文件導入到MySQL地址時出現逗號的問題

我見過一個解決方案,您可以從excel保存到製表符分隔的txt文件。然後你進入記事本並用分號替換標籤。

這是「修復地址中的逗號」問題的最佳做法嗎?

我的最終目標是將Highrise的一個CSV文件從數百個客戶端導入到我們的MySQL數據庫中,然後每隔幾個月更新一次,這似乎是一個體面的腳本,但是我會以錯誤的方式進行操作嗎?

編輯:看來,是分裂了細胞的PHP代碼的部分是

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

回答

2

如果您使用逗號作爲列分隔符,那麼您應該引用所有字符串字段值,例如, -

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

嘗試使用LOAD DATA INFILE語句ENCLOSED BY FIELDS '\'」選項。

+0

當然,請注意地址中的引號是可能的。在任何地方是否有「奧尼爾街」? – 2013-03-21 16:07:14

0

逗號(「」)是CSV的HART文件,所以當你生成CSV文件它在發現逗號時劃分單元格。

所以我認爲你應該用空格或其他任何分隔符替換逗號。當您爲CSV生成最終代碼時,可以使用PHP的默認功能str_replace()

+0

我大概沒有解釋清楚,但如果我做了str_replace(),它也會替換地址中的逗號。無論哪種方式,我不能簡單地使用PHP替換逗號。我們從Highrise導出一個CSV文件,然後我必須從Excel導出並使用我想象中的不同的分隔符。或沒有? – LITguy 2013-03-21 06:11:51

+0

是的,你可以但只能在地址欄上聯合str_replace。高層的csv意味着什麼,實際上我無法得到這一點。 – 2013-03-21 06:26:03