Nemyslím si, že to takto bude fungovat. Když příkaz zavřete (např. $menu_stmt->close();
) také uvolníte popisovač příkazu. Takže při druhém průchodu smyčkou již nemáte připravené příkazy k dispozici pro práci.
Zkuste zavřít příkazy po dokončení cyklu.