php/mysql动态表单字段没有插入到我的表中

mnemlml8  于 2021-06-18  发布在  Mysql
关注(0)|答案(2)|浏览(433)

我有一个表单,它的输入字段数目可变,我现在尝试在数据库中获取这些值。我从另一个问题得到了这个代码,所有的回复都暗示他们已经成功了…所以我想我在这里做错了什么。
我没有得到任何错误,它只是在我的数据库中输入一个空条目/行每次我提交表单。$\u post数组充满了我需要的所有数据,打印时会显示出来。

<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {

  if (
     !empty($_POST['homeTeam']) && !empty($_POST['awayTeam']) && !empty($_POST['homeWin']) && !empty($_POST['awayWin']) && 
     is_array($_POST['homeTeam']) && is_array($_POST['awayTeam']) && is_array($_POST['homeWin']) && is_array($_POST['awayWin']) && 
     count($_POST['homeWin']) === count($_POST['awayWin'])
  ) {
      $homeTeam_array = $_POST['homeTeam'];
      $awayTeam_array = $_POST['awayTeam'];
      $homeWin_array = $_POST['homeWin'];
      $awayWin_array = $_POST['awayWin'];

      for ($i = 0; $i < count($homeTeam_array); $i++) {

          $homeTeam = mysql_real_escape_string($homeTeam_array[$i]);
          $awayTeam = mysql_real_escape_string($awayTeam_array[$i]);
          $homeWin = mysql_real_escape_string($homeWin_array[$i]);
          $awayWin = mysql_real_escape_string($awayWin_array[$i]);

          $sql = "INSERT IGNORE INTO CalcOdds (homeTeam, awayTeam, homeWin, awayWin) VALUES ('$homeTeam', '$awayTeam', '$homeWin', '$awayWin')"; 
          $conn->query($sql);
          $conn->close();

      }
  }
  echo "<pre>";
  print_r($_POST);
  echo "</pre>";
  echo 'Done!';
}

?>
de90aj5v

de90aj5v1#

我认为问题是因为您有$conn->close();在for循环中,尝试将其添加到循环之后,如下所示:

for ($i = 0; $i < count($homeTeam_array); $i++) {

          $homeTeam = mysql_real_escape_string($homeTeam_array[$i]);
          $awayTeam = mysql_real_escape_string($awayTeam_array[$i]);
          $homeWin = mysql_real_escape_string($homeWin_array[$i]);
          $awayWin = mysql_real_escape_string($awayWin_array[$i]);

          $sql = "INSERT IGNORE INTO CalcOdds (homeTeam, awayTeam, homeWin, awayWin) VALUES ('$homeTeam', '$awayTeam', '$homeWin', '$awayWin')"; 
          $conn->query($sql);            
      }
      $conn->close();
jgwigjjp

jgwigjjp2#

而不是做!空()我会做isset()
从外观上看,您实际上还没有建立到数据库的连接。
例如,使用echo()确保数据实际通过if()语句。

相关问题