foreach不处理插入mysql的数组

时间:2011-11-04 05:47:56

标签: php mysql pdo

我想问为什么foreach没有插入来自$ listname数组的所有数据的记录,而是只插入数组中的最后一项,但如果我在foreach中回显$ fname,我可以看到记录。感谢

 $last_id = $db_->lastInsertId();

   foreach ($listname as $fname) {
           $new_name->bindParam(':fname',fname);
           $new_name->bindParam(':id',$last_id);
   }

1 个答案:

答案 0 :(得分:1)

在迭代for循环时,您的某些代码会丢失,或者您只是覆盖参数。您需要准备语句,并在循环中:

  1. 绑定参数
  2. 然后执行
  3. 对于要插入的每组值。

       $last_id = $db_->lastInsertId();
    
       $name = $db->prepare("INSERT INTO name SET fname=:fname, id=:id");
    
       foreach ($listname as $fname) {
           $name->bindParam(':fname',fname);
           $name->bindParam(':id',$last_id);
           $name->execute();
       }