Przygotowane wyciągi i transakcje to niepowiązane techniki i technologie.
Możesz chcieć wydać START TRANSACTION i COMMIT /ROLLBACK poleceń, zamiast używać dedykowanych metod. Są funkcjonalnie równoważne.
W swojej pętli możesz wydać START TRANSACTION przed twój prepare , a następnie COMMIT po wyjściu z pętli. Prawdopodobnie nie powinieneś próbować otwierać transakcji po uruchomieniu przygotowanego zestawienia, ale przed jego wykonaniem.
Z jakiegoś powodu nie dodali polecenia „rozpocznij transakcję” na rzecz wyłączenia automatycznego zatwierdzania. To jedna z tych dziwnych rzeczy w mysqli, która sprawia, że zawsze polecam PDO. :) Otwarcie transakcji domyślnie wyłącza automatyczne zatwierdzanie na czas trwania transakcji.