我想添加一项功能,允许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