var_dump(array());
Will give you an empty array because that's what you passed to var_dumpty. I have no idea what you're doing but try this...
$myarray = array(
":userName" => $userName,
":password" => $password,
":firstname" =>$firstname,
":Surname" => $Surname,
":gender" => $gender,
":dob" => $dob,
":email" => $email)
);
print_r($myarray);
$stmt->execute($myarray);