$DB->beginTransaction();
try {
// USER:
$createUser = $DB->prepare(user_Query_Create());
// Vehicle:
$createVehicle = $DB->prepare(vehicles_Query_Create());
$createUser->execute([ ':firstname' => $_POST['firstname'], ':surname' => $_POST['surname'], ':email' => $_POST['email'], ]);
$userId = $DB->lastInsertId();
$createVehicle->execute( [ ':vrm' => vrm_Clean($_POST['vrm']), ':uid' => $DB->lastInsertId() ]);
$vehicleId = $DB->lastInsertId();
// MOT:
$insertMOT = $DB->prepare("
INSERT INTO
mots
(
expiry, user_id, vehicle_id, added
)
VALUES
(
:expiry, :uid, :vid, NOW()
)
");
$insertMOT->execute( [ ':expiry' => $_POST['expiry'], ':uid' => $userId, ':vid' => $vehicleId ] );
$MOTId = $DB->lastInsertId();
$updateVehicle = $DB->prepare("
UPDATE
vehicles
SET
mot_id=:motid
WHERE
id=:vehicleId
");
$updateVehicle->execute( [ ':motid' => $MOTId, ':vehicleId' => $vehicleId ] );
$DB->commit();
} catch (\Exception $e) {
$DB->rollback();
throw $e;
}
Something like that? needs tidying up and the variables for nothing removing...