Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Von MySQLi vorbereitete Anweisungen und Transaktionen

Vorbereitete Kontoauszüge und Transaktionen sind unabhängige Techniken und Technologien.

Sie können den START TRANSACTION ausgeben und COMMIT /ROLLBACK Befehle direkt, anstatt die dedizierten Methoden zu verwenden. Sie sind funktional gleichwertig.

Für Ihre Schleife geben Sie den START TRANSACTION aus vorher Ihre prepare , dann Ihr COMMIT nachdem die Schleife beendet wurde. Sie sollten wahrscheinlich nicht versuchen, eine Transaktion zu öffnen, nachdem eine vorbereitete Anweisung gestartet wurde, aber bevor sie ausgeführt wurde.

Aus irgendeinem Grund haben sie keinen "Start Transaction"-Befehl hinzugefügt, um Autocommit zu deaktivieren. Es ist eines dieser seltsamen Dinge an mysqli, das mich dazu bringt, stattdessen immer PDO zu empfehlen. :) Das Öffnen einer Transaktion schaltet Autocommit implizit für die Dauer der Transaktion aus.