Php PDO覆盖参数

Php PDO覆盖参数,php,mysql,pdo,Php,Mysql,Pdo,我编写了一个简单的代码,可以在数据库上进行多次插入: <?php if (isset($_POST['numb']) && isset($_POST['email1'])) { $error = false; $numb = $_POST['numb']; for ($i = 1; $i <= $numb; $i++) { if (!isset($_POST['email' . $i])) { $error = true; }

我编写了一个简单的代码,可以在数据库上进行多次插入:

 <?php
if (isset($_POST['numb']) && isset($_POST['email1'])) {
  $error = false;
  $numb = $_POST['numb'];
  for ($i = 1; $i <= $numb; $i++) {
    if (!isset($_POST['email' . $i])) {
      $error = true;
    }
  }
  if ($error == false) {
    include 'config.php';
    try {
      $connection = new PDO($dsn, $user, $pass);
      $suc1 = true;
    } catch (PDOException $e) {
      echo $e->GetMessage();
      $suc1 = false;
    }
    if ($suc1 == true) {
      $sql = "INSERT INTO alunos(email, emailKey) VALUES ";
      for ($i = 1; $i <= $numb; $i++) {
        $BAMBAM[$i] = '(:email' . $i . ', :emailkey' . $i . ')';
        $FELIPEFRANCO[$i] = sha1(microtime() . $_POST['email'. $i]);
        if ($i != $numb) {
          $BAMBAM[$i] = $BAMBAM[$i] . ',';
        }
        $sql = $sql . $BAMBAM[$i];
      }
      $insert = $connection->prepare($sql);
      for ($i = 1; $i <= $numb; $i++) {
        $param1 = 'email' . $i;
        $value1 = $_POST['email' . $i];
        $param2 = 'emailkey' . $i;
        $value2 = $FELIPEFRANCO[$i];
        echo '<script>alert("' . $param1 . ' -> ' . $value1 . '")</script>';
        $insert->bindParam($param1, $value1, PDO::PARAM_STR);
        $insert->bindParam($param2, $value2, PDO::PARAM_STR);
      }
      try {
        $insert->execute();
        $suc2 = true;
      } catch (PDOException $e) {
        echo  $e->GetMessage();
        $suc2 = false;
      }
      echo $sql;
    } else {
      header('Location: addAlunosForm.php?error=internal');
    }
  } else {
    header('Location: addAlunosForm.php?error=fill');
  }
} else {
  header('Location: addAlunosForm.php?error=fill');
}
?>
详细信息:

  • $numb是插入的数量

    其中是
    执行
    ?尝试执行最后一个查询,这可能有助于您在每次插入时进行调试:@u_mulder我认为没有必要发布执行,我现在将用完整的代码更新。。。
    3
    NULL
    3@gmail.com
    901d4043642394ca30ea83688d944987d266b698
    NULL
    NULL
    
    4
    NULL
    3@gmail.com
    901d4043642394ca30ea83688d944987d266b698
    NULL
    NULL
    
    5
    NULL
    3@gmail.com
    901d4043642394ca30ea83688d944987d266b698
    NULL
    NULL