Prince Philip, the 96-year-old husband of Britain's Queen Elizabeth, is admitted to hospital with an infection and will miss the formal opening of parliament, but he remains in good spirits, Buckingham Palace says.