我最近问过如何将 CSV 插入 MySQL 数据库。有人建议我使用 LOAD DATA LOCAL INFILE,但事实证明这在我的主机上被禁用,因此不再是一个选项。回到 PHP 循环..
我在循环临时上传的结果时遇到问题,因为我在插入时将值映射到数组。因此,在多行上,这会导致两次输入相同的条目(第一行的值),因为数组值是明确定义的。
它正在插入 1、2、3、4,然后是 1、2、3、4。我想插入数组的 1、2、3、4,然后是 5、6、7、8。
解决方案是什么(除了 hacky for's 和 row++)?
提前致谢。
$handle = fopen($_FILES['csv']['tmp_name'], "r");
$sql = "INSERT INTO tbl (col1, col2, col3, col4) VALUES (?, ?, ?, ?)";
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
$query = $db->prepare($sql);
if ($query->execute(array($data[0],$data[1],$data[2],$data[3]))) return true;
else return false;
}