mysqli_rollback

mysqli_rollback($db, $flags = 0, $name = null)

Verwirft alle Änderungen der laufenden Transaktion, als wären die Abfragen nie gelaufen. Sie gehört in einen catch-Block, wenn einer der Schritte scheitert. Die Funktion liefert true.

Parameter

  • $db – die Verbindung.
  • $flags, $name – optional.

Beispiele

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$db = mysqli_connect("localhost", "user", "password", "shop");
mysqli_set_charset($db, "utf8mb4");
mysqli_begin_transaction($db);
mysqli_query($db, "DELETE FROM products");
echo mysqli_fetch_row(mysqli_query($db, "SELECT COUNT(*) FROM products"))[0]; // 0
var_dump(mysqli_rollback($db)); // bool(true)
echo mysqli_fetch_row(mysqli_query($db, "SELECT COUNT(*) FROM products"))[0]; // 3

Worauf Sie achten sollten

  • AUTO_INCREMENT-Werte, die während einer verworfenen Transaktion vergeben wurden, kommen nicht zurück – in der Nummerierung entsteht eine Lücke.
  • Ein Rollback macht Änderungen in MyISAM-Tabellen nicht rückgängig.

Verwandte Funktionen:
mysqli_begin_transaction()
mysqli_commit()
mysqli_insert_id()