我想添加一項功能,允許wvb應用程序的用戶使用CSV文件批量上傳數據 - 除非數據在實際字段本身包含逗號,否則所有工作都很好。CSV文件中的逗號逗號
有很多關於這個的帖子,我已經閱讀了很多關於解決這個問題的方法,主要是用雙引號括住逗號,但我無法弄清楚如何爲我的代碼執行此操作。
最終我不能依賴用戶在輸入時爲我做這件事,所以我需要做它作爲上傳過程的一部分之前,它擊中數據庫 - 我試圖使用選項卡作爲備用分隔符,但Excel似乎是非常在處理標籤分離方面不一致,所以我排除了這一點。
(sanitiseData是我用整個現場清理所有的用戶輸入數據的功能)
$handle = fopen($file_path, 'r');
$row_count=0;
while (($data = fgetcsv($handle, 0, ',')) !== FALSE) {
if ($row_count==0) {
$row_count++;
} else {
$row_count++;
$works_id = sanitiseData($data[0]);
$title = sanitiseData($data[1]);
$first_name = sanitiseData($data[2]);
//Use data to insert into db
$sql = mysql_query("INSERT INTO csv_employee_personal (id,works_id,title,first_name) VALUES ('','$works_id','$title','$first_name')");
}
}
//delete csv file
unlink($file_path);
你是如何創建的CSV文件? – 2012-07-19 20:32:09
使用['MySQLi']( http://php.net/manual/en/book.mysqli.php)和['mysqli_query'](http://php.net/manual/en/mysqli.query.php)等。** NOT ** 'mysql _...'。 – 2012-07-19 20:32:43
如果*逗號分隔值*包含未轉義的逗號,則數據無效。任何分析它的嘗試都是一個幸運的猜測。要求你的用戶提交**有效的**數據。 – deceze 2012-07-19 20:34:05