Mysql
 sql >> Database >  >> RDS >> Mysql

Dichiarazioni e transazioni preparate da MySQLi

Le dichiarazioni e le transazioni preparate sono tecniche e tecnologie non correlate.

Potresti voler emettere il START TRANSACTION e COMMIT /ROLLBACK comandi direttamente invece di utilizzare i metodi dedicati. Sono funzionalmente equivalenti.

Per il tuo ciclo, emetteresti il ​​START TRANSACTION prima il tuo prepare , quindi il tuo COMMIT dopo che il ciclo è terminato. Probabilmente non dovresti provare ad aprire una transazione dopo che un'istruzione preparata è stata avviata ma prima che sia stata eseguita.

Per qualche motivo, non hanno aggiunto un comando "avvia transazione" a favore della disattivazione dell'autocommit. È una di quelle cose strane su mysqli che mi fa invece consigliare sempre PDO. :) L'apertura di una transazione disattiva implicitamente l'autocommit per la durata della transazione.