Erro ao inserir database de vários valores php

Alguém pode me explicar por que isso não está funcionando, eu estou tentando inserir vários valores em um database, primeiro eu estava inserindo apenas carpinces e estava funcionando, mas agora estou tentando inserir também o Ids, mas agora o código não funciona

if(!empty($_POST)) { $query = "INSERT INTO prices (carid, vendorid, carprice) values (:carid, 2, :carprice)"; $query_params = array(':carprice' => $_POST['carprice']); $price = null; $carids = null; try { $stmt = $db->prepare($query); $stmt->bindParam(':carprice', $price); foreach($_POST['carprice'] as $value) { $price = $value; $stmt->execute(); } $stmt->bindParam(':carid', $carids); foreach($_POST['carid'] as $value) { $carids = $value; $stmt->execute(); } } catch(PDOException $ex) { die("Error 1 " . $ex->getMessage()); } header("Location: update.php"); die("Rendirecting to update.php"); } ?> 
Id car model Price
<input type="hidden" name="carid[]" value="" />

Suponho que você deseja inserir o preço do carro para o carId especificado. Primeiro você precisa mapear cada id de carro para o preço do carro, fique assim:

 if (!empty($_POST['carid'] && $_POST['carprice']) { $carPrices = array_combine($_POST['carid'], $_POST['carprice']); foreach ($carPrices as $carId => $carPrice) { $stmt = $db->prepare($query); $stmt->bindParam(':carprice', $carPrice); $stmt->bindParam(':carid', $carId); $stmt->execute(); } }