Как вставить несколько строк с одинаковыми именами, используя Mysql и PHP - PullRequest
0 голосов
/ 13 октября 2018

У меня есть база данных под названием dbcenter, и у меня есть таблица курсов.У меня есть форма для вставки нескольких названий курсов одновременно.Но когда я отправляю, вставляю только одну пустую строку.Это моя форма ввода:

    <form action="COURSE.php" method="POST" enctype='multipart/form-data'>

        <input type="text" name="listName[]" value="course 1">
        <input type="text" name="listName[]" value="course 2">
        <input type="text" name="listName[]" value="course 3">

        <input type="submit" name="submit" value="insert">
    </form>

И мой код PHP:

if(isset(filter_input_array(INPUT_POST)['submit'])){

   $names[] = filter_input(INPUT_POST,'listName');

   if(is_array($names)){
      foreach ($names AS $key => $item){

        $insertCourse = $con->prepare("INSERT INTO `courses`(`course_Name`) 
        VALUES ('$item')");
        }
        $insertCourse->execute();
                if($insertCourse){
                    echo 'added';
                    }
                }
   else {
        echo 'not array';
      }
}

Я попытался удалить [] из имени ввода listName [], и он вставляет данные, но только последнее текстовое поле,Кто-нибудь может мне помочь в этом?

1 Ответ

0 голосов
/ 13 октября 2018

Ошибка фильтрации ввода.

execute() должен быть внутри цикла foreach.

Также никогда не доверяйте вводу пользователя, используйте параметризованные запросы или экранируйте с помощью mysqli::real_escape_string(), чтобы пользовательвход правильно экранирован:

   if(isset(filter_input_array(INPUT_POST)['submit'])){

       $names = filter_input_array(INPUT_POST)['listName'];

       if(is_array($names)){
          $insertCourse = $con->prepare("INSERT INTO `courses`(`course_Name`) 
               VALUES (?)");
          $insertCourse->bind_param("s", $item);
          foreach ($names AS $key => $item){

              $res = $insertCourse->execute();
              if($res){
                  echo 'added<br>';
              }
          }
          $insertCourse->close();
       }
       else {
           echo 'not array';
       }
   }
...