mysqli_release_savepoint în PHP

Șterge un punct de salvare din tranzacția curentă, fără să anuleze sau să salveze modificări.

Sintaxă
mysqli_release_savepoint(mysqli $mysql, string $name): bool

Ce face mysqli_release_savepoint

Funcția rulează RELEASE SAVEPOINT nume. Modificările rămân în tranzacție exact cum erau; doar nu mai poți reveni la acel punct. La commit sau rollback, toate punctele de salvare sunt șterse oricum.

Parametri

Parametru Descriere
$mysql Conexiunea.
$name Numele punctului de salvare.

Ce returnează

true la succes. Un punct inexistent aruncă mysqli_sql_exception (PHP 8.1+).

Exemple

Exemplul 1: Punct de salvare eliberat

<?php
$conn = mysqli_connect("localhost", "ana", "parola_ta", "magazin");

mysqli_begin_transaction($conn);
mysqli_savepoint($conn, "pas1");
mysqli_release_savepoint($conn, "pas1");

try {
    mysqli_query($conn, "ROLLBACK TO SAVEPOINT pas1");
} catch (mysqli_sql_exception $e) {
    echo $e->getMessage();
}
mysqli_rollback($conn);

Rezultat (cu un server MySQL și tabelul produse de mai sus)

SAVEPOINT pas1 does not exist

Greșeli frecvente

  • Crezi că mysqli_release_savepoint salvează modificările. Doar ștergerea tranzacției cu mysqli_commit le face permanente.

Comenzi înrudite

  • mysqli_savepoint: Creează un punct de salvare în tranzacția curentă, la care poți reveni fără să anulezi toată tranzacția.
  • mysqli_commit: Salvează definitiv toate modificările făcute în tranzacția curentă.