Я пытаюсь вставить данные в таблицу MySQL, используя информацию из формы. По какой-то причине в таблицу вставляется только первая запись.
Как я могу решить эту проблему? Спасибо
....
// Create connection
$conn = mysqli_connect($servername, $username, $password, $database);
// Check connection
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
if(isset($_POST['submit'])){
$makeArr = $_POST['make'];
$modelArr = $_POST['model'];
$yearArr = $_POST['year'];
$regoArr = $_POST['rego'];
if(!empty($makeArr)){
for($i = 0; $i < count($makeArr); $i++){
if(!empty($makeArr[$i])){
$make = $makeArr[$i];
$model = $modelArr[$i];
$year = $yearArr[$i];
$rego = $regoArr[$i];
//database insert query goes here
$sql = "INSERT INTO test (`make`, `model`, `year`, `rego`) VALUES ('$make', '$model', '$year', '$rego')";
if ($conn->query($sql) === TRUE) {
echo "New record created successfully";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
$conn->close();
}
}
}
}
Вы закрываете $conn
в пределах вашего цикла. Вы должны взять его и поставить вне цикла for.
$conn->close()
закроет соединение sql.
Это означает, что его нельзя использовать снова.
Других решений пока нет …