1 回答
TA贡献1829条经验 获得超7个赞
问题是因为要插入到表中的 foreach 循环每次在 while 循环周围都会插入到两个表中。仅当 $row==1 且 tab2 为 $row==2 时才插入 tab1。试试这个(未经测试):
$myid = 231;
if (isset($_POST["submit"])) {
$file = $_FILES['file']['tmp_name'];
if (($handle = fopen($file, "r")) !== FALSE) {
$row = 0;
$tables = ['tab1', 'tab2'];
while (($data = fgetcsv($handle)) !== FALSE && $row<3) {
if ($row > 0) {
$stmt = $pdo->prepare("UPDATE ".$tables[$row-1]." SET fname=?, lname=? WHERE id=?");
$stmt->execute([$data[0], $data[1], $myid]);
}
$row++;
}
fclose($handle);
}
}
我创建了两个表的数组,然后根据行号更新相关表。
当我们达到 2 行时,我还添加了一个中断,以防 CSV 的行数超出您的预期。
- 1 回答
- 0 关注
- 90 浏览
添加回答
举报