我正在尝试将 CSV 导入 MySQL 数据库,其中每个新行应代表数据库中的一个新行。
这是我目前在 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)做一些“hacky”for循环,记住索引的位置,然后对每个插入的数组值执行n+1。
2)意识到 fgetcsv 不是我需要的功能,并且有更好的东西来处理新行!
谢谢!