Похоже, вы хорошо используете lastInsertId ().
Теперь, вы слышали о транзакциях?
PHP РУЧНАЯ - ОПЕРАЦИИ С PDO
Транзакции - это способ обеспечить выполнение обоих запросов, если один из них сбой, оба сбоя, таким образом вы можете гарантировать установление отношения FK.
Вместе с транзакциями вам нужно будет использовать функцию PDO чтобы получить последний вставленный идентификатор в БД.
Я предполагаю, что вы используете PHP 7 и PDO для вашего соединения, поэтому это будет что-то вроде:
<?php
$connection->beginTransaction();
$sql1 = "INSERT INTO klant(client_name, phonenumber) VALUES(:client_name, :phonenumber)";
$statement1 = $connection->prepare($sql1);
$statement1->execute([':client_name' => $client_name, ':phonenumber' => $phonenumber]);
$client_id = $connection->lastInsertId();
$sql = "INSERT INTO reservation(tabel, date, time, client_id, persons) VALUES(:tabel, :date, :time, :client_id, :persons)";
$statement = $connection->prepare($sql);
$statement->execute([':tabel' => $tabel, ':date' => $date, ':time' => $time, ':client_id' => $client_id, ':persons' => $persons]);
if ($statement && $statement1 == true) {
$message = 'Data is succesvol toegevoegd';
} else {
$message = 'Data is niet succesvol toegevoegd';
$connection->rollBack();
}
Надеюсь, это поможет .