Los extractos preparados y las transacciones son técnicas y tecnologías no relacionadas.
Es posible que desee emitir el START TRANSACTION
y COMMIT
/ROLLBACK
comandos directamente en lugar de usar los métodos dedicados. Son funcionalmente equivalentes.
Para su bucle, emitiría el START TRANSACTION
antes tu prepare
, luego su COMMIT
después de que el bucle sale. Probablemente no debería intentar abrir una transacción después de que se haya iniciado una declaración preparada pero antes de que se haya ejecutado.
Por alguna razón, no agregaron un comando de "inicio de transacción" a favor de desactivar la confirmación automática. Es una de esas cosas extrañas sobre mysqli que me hace recomendar siempre PDO en su lugar. :) Abrir una transacción desactiva implícitamente la confirmación automática durante la duración de la transacción.