Вставка нескольких записей в несколько таблиц php pdo

Следуя инструкциям здесь, чтобы сохранить несколько записей в базе данных, я придумал этот код

foreach($array as $value){
     $stmt = $dbh->prepare("INSERT INTO REGISTRY (name, value) VALUES (:name, :value)");
     $stmt->bindParam(':name', $value['name']);
     $stmt->bindParam(':value', $value['value']);
     $stmt->execute();
}

foreach($array1 as $value){
     $stmt = $dbh->prepare ("INSERT INTO user (firstname, surname) VALUES (:fname, :sname)");
      $stmt -> bindParam(':fname', 'John');
      $stmt -> bindParam(':sname', 'Smith');
      $stmt -> execute();
}

У меня есть что-то вроде этого, просто другая таблица и значение, но код тот же. Я хочу спросить, почему второй foreach не выстрелил, не спасся только первый foreach был уволен, и только первый набор данных был сохранен. Как сделать так, чтобы они оба были уволены и сохранены.

1 ответ

Убедитесь, что вы используете те же ключевые слова, что и для первого массива. Замените: VALUES (:f-name,:s-name)") на

VALUES (:fname, :sname)")

потому что ваш stmt вызывает fname и sname, но не s-name и f-name

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