我试图将CSV导入到MySQL数据库中,其中每个新行应代表数据库中的新行。PHP CSV上传脚本,使用新行?
这里是我迄今为止在CSV:
1one, 1two, 1three, 1four
2one, 2two, 2three, 2four
和应用程序:
$handle = fopen($_FILES['filename']['tmp_name'], "r");
$data = fgetcsv($handle, 1000, ",");
$sql = "INSERT INTO tbl (col1, col2, col3, col4) VALUES (?, ?, ?, ?)";
$q = $c->prepare($sql);
$q->execute(array($data[0],$data[1],$data[2],$data[3]))
的问题是,被插入的只有前四个值,显然是由于缺乏一个循环。
我能想到的两个选项来解决这个问题:
1)做一些“哈克”的循环,可以记忆索引的位置,那么n在每个插入确实+ 1数组值。
2)意识到fgetcsv不是我需要的函数,并且有更好的方法来处理新行!
谢谢!
谢谢,这将工作与临时文件,就像我的例子,或有文件被保存?另外,这将如何处理注入和不好的字符,如“? – 2012-08-03 11:43:21