$rows
не является ассоциативным массивом, поэтому в нем нет ключей :firstname
и :lastname
.Кроме того, bindParam()
привязывается к ссылкам, поэтому использование одной и той же переменной $value
каждый раз в цикле будет связывать оба параметра с последним значением из цикла.
Вам не нужен массив в первомместо.Просто свяжите каждый параметр по отдельности.
Но $_POST['firstname']
и $_POST['lastname']
являются массивами, поэтому вам нужно пройти через них.
$firstname = $lastname = null;
$stmt = $conn->prepare("INSERT INTO memo(ID, firstname, lastname)
VALUES (NULL, :firstname, :lastname)");
$stmt->bindParam(":firstname", $firstname);
$stmt->bindParam(":lastname", $lastname);
foreach ($_POST['firstname'] as $i => $firstname) {
$lastname = $_POST['lastname'][$i];
$stmt->execute();
}