Как вставить данные из массива в mysql с помощью php

У меня есть эти массивы имени и фамилии, я хочу вставить имена в базу данных, массивы выглядят так:

Array(
[0] => firstname1
[1] => firstname2
[2] => firstname3
)

Array(
[0] => lastname1
[1] => lastname2
[2] => lastname3
)

У меня есть этот код для их вставки, но он не работает

         $fname = $_POST['fname'];
         $lname = $_POST['lname'];

         for($i=0, $count = count($fname); $i < $count; $i++){
         $lastname = $lname[$i];
          $firstname = $fname[$i];
         $query = mysqli_query($con,"INSERT INTO 
       persons(firstname,lastname)VALUES('$firstname','$lastname')");
    }

Печать строк в массиве - это не проблема, но когда я вставляю его, появляется сообщение об ошибке Примечание: преобразование массива в строку в D: \ xampp \ htdocs \ SPAC_Online_Grading_System \ system \ pages \ addfunction.php в строке 259 Как заставить его работать?

Ваш синтаксис цикла for неверен

Marko Paju 02.05.2018 10:04

Мало того, что это недостаточно изученный дубликат. Ваш запрос уязвим для инъекционных атак. Продолжайте исследовать.

mickmackusa 02.05.2018 10:04
Опасность: Вы уязвим для Атаки с использованием SQL-инъекций, от которого вам нужно самому защищать.
Quentin 02.05.2018 10:04

Возможный дубликат Вставить строки из двух массивов в таблицу mysql в php ... это всего лишь один из МНОГИЕ.

mickmackusa 02.05.2018 10:07

Извините, если вам кажется, что это недостаточно изученный дубликат, но задавать вопросы здесь действительно мой последний вариант, хе-хе. Да, он уязвим, но меня это сейчас не беспокоит, я просто хочу вставить эти вещи.

Rouge 02.05.2018 10:10

Предвижу неприятности при вставке Mr. O'Connor.

mickmackusa 02.05.2018 10:10
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
6
40
3

Ответы 3

Ваше условие цикла неверно, измените:

for($i=0, $count = count($fname); $i < $count; $i++)

К :

for($i=0; $i < count($fname); $i++)

Также обратите внимание, что вы уязвимы для инъекций SQL, вам следует подготовить и связать свои операторы

Вы ошиблись. Попробуйте этот код:

 <?php 
 $fname = $_POST['fname'];
 $lname = $_POST['lname'];

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

   $firstname = $fname[$i];
   $lastname = $lname[$i];

   $query = mysqli_query($con,"INSERT INTO 
      persons(firstname,lastname)VALUES('$firstname','$lastname')");
 }
 ?>
    for($i=0; $i<count($fname);$i++){
        $lastname = $lname[$i];
        $firstname = $fname[$i];
        $stmt = $conn->prepare($con,"INSERT INTO persons(firstname,lastname)VALUES(?,?)");
        $stmt->bind_param("ss", $firstname, $lastname);
        $stmt->execute();
    }

Попробуйте этот код. Он защищен от внедрения sql (с использованием операторов подготовки) и исправил ваш цикл for.

Другие вопросы по теме