Jag tror inte att det kommer att fungera på det här sättet. När du stänger satsen (t.ex. $menu_stmt->close();
) tilldelar du också utdragshandtaget. Så andra gången genom slingan har du inte de förberedda satserna tillgängliga att arbeta med längre.
Försök att stänga programsatserna efter att loopen har avslutats.