У меня есть эти массивы имени и фамилии, я хочу вставить имена в базу данных, массивы выглядят так:
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 Как заставить его работать?
Мало того, что это недостаточно изученный дубликат. Ваш запрос уязвим для инъекционных атак. Продолжайте исследовать.
Возможный дубликат Вставить строки из двух массивов в таблицу mysql в php ... это всего лишь один из МНОГИЕ.
Извините, если вам кажется, что это недостаточно изученный дубликат, но задавать вопросы здесь действительно мой последний вариант, хе-хе. Да, он уязвим, но меня это сейчас не беспокоит, я просто хочу вставить эти вещи.
Предвижу неприятности при вставке Mr. O'Connor
.
Ваше условие цикла неверно, измените:
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.
Ваш синтаксис цикла for неверен