Připravené výkazy a transakce jsou vzájemně nesouvisející techniky a technologie.
Možná budete chtít vydat START TRANSACTION a COMMIT /ROLLBACK příkazy přímo namísto použití vyhrazených metod. Jsou funkčně ekvivalentní.
Pro vaši smyčku byste zadali START TRANSACTION před prepare a poté váš COMMIT po opuštění smyčky. Pravděpodobně byste se neměli pokoušet otevřít transakci po spuštění připraveného výpisu, ale před jeho provedením.
Z nějakého důvodu nepřidali příkaz "zahájit transakci" ve prospěch vypnutí automatického potvrzení. Je to jedna z těch divných věcí na mysqli, která mě nutí vždy místo toho doporučovat PDO. :) Otevření transakce implicitně vypne automatické potvrzení po dobu trvání transakce.