2011-04-05 70 views
0

我有一個簡單的PHP腳本,它可以循環訪問CSV文件中的數據,並相應地將記錄添加到數據庫中。其中一個字段是描述字段,但該描述字段本身具有逗號(或多個逗號)。似乎該字段的數據只能在逗號​​之前被讀取,但是下一個字段是正確的,所以它不像後面的字段是描述的剩餘部分,而是使用下一個正確的列。PHP導入的CSV數據在遇到逗號時會縮短

我應該逃避逗號嗎?我將這些數據添加到MySQL數據庫中,這可能是導致問題的原因嗎?

我的SQL查詢可以是這樣的:

$description = $data[7]; //description column eg: "hello, my name is xxxxx, I am old" 
INSERT INTO tblsomething (id, description) VALUES ($id, '$description'); 

上面的語句只插入描述爲「你好」,它遇到的第一個逗號後面什麼都沒有。

任何想法爲什麼這樣?

非常感謝, 西蒙

編輯:這是解決了,向大家致歉,因爲這是一個愚蠢的錯誤。看起來做前端的人使用模式','來創建內容數組來分割內容。看起來似乎這個描述 - 儘管應該是一個數組入口 - 由於包含逗號而被分成多個條目。這將通過使用像管道符號這樣的更少見的字符來創建我們的分隔符來解決。

感謝所有

+0

請查看'$ data [7]'的內容。我非常肯定它只包含'hello',並且錯誤在你的csv中的數組過程中的PHP代碼。因此,請包括該代碼。 – 2011-04-05 11:51:52

+0

如果你確實有這些引號,那麼問題就不存在了。或者你解析了CSV錯誤。 – 2011-04-05 11:52:48

回答

0

因爲這不是CSV文件。包含逗號的CSV文件中的字段應該用雙引號分隔;這樣PHP中的CSV函數將正確處理它們。