php使用$ _get命令获取外键

The users are registered in the db. When I submit from inputting the necessary info on the web, it would refresh and won't store the data in the db. I think there is something wrong with the $_get command. I'm trying to receive the id that is a foreign key of that table and store the data into the db.

<? include_once 'session.php';
include_once 'newtryconn.php';
include_once 'utilities.php';

if(isset($_POST['preferences'])){
    $religion = $_POST['religion'];
    $home = $_POST['home'];
    $occuption = $_POST['occuption'];
    $roommates = $_POST['roommates'];
    $phone = $_POST['phone'];
    if(isset($_GET['id'])) {
        $id = $_GET['id'];

        $sqlInsert = "INSERT INTO preferences (religion, home, occuption, roommates, phone, id)
        VALUES (:religion, :home, :occuption, :roommates, :phone, :id)";

            //use PDO prepared to sanitize data
        $statement = $db->prepare($sqlInsert);

        //add the data into the database
        $statement->execute(array(':religion' => $religion, ':home' => $home, ':occuption' => $occuption, ':roommates' => $roommates, ':phone' => $phone, ':id' => $id));
        header("location: homepage.php");
}
}  


?>