MySQLi - reversão

Sintaxe

bool mysqli_rollback ( mysqli $link [, int $flags [, string $name ]] )

Definição e Uso

Ele remove o ponto de salvamento nomeado do conjunto de pontos de salvamento da transação atual.

Exemplo

Experimente o seguinte exemplo -

<?php
   $servername = "localhost:3306";
   $username = "root";
   $password = "";
   $dbname = "TUTORIALS";
   $tmp = NULL;
   $conn = new mysqli($servername, $username, $password, $dbname);
   
   if (!$conn->real_connect($servername, $username, $password, $dbname)) {
      die('Connect Error (' . mysqli_connect_errno() . ') '. mysqli_connect_error());
   }
   echo 'Success... ' . mysqli_get_host_info($conn) . "\n";
   
   mysqli_query($conn, "CREATE TABLE tutorials_test1 LIKE tutorials_auto");
   mysqli_query($conn, "ALTER TABLE tutorials_test1 Type = InnoDB");
   mysqli_query($conn, "INSERT INTO tutorials_test1 SELECT * FROM id LIMIT 50");
   mysqli_commit($conn);
   mysqli_query($conn, "DELETE FROM tutorials_test1");
   
   if ($result = mysqli_query($conn, "SELECT COUNT(*) FROM tutorials_test1")) {
      $row = mysqli_fetch_row($result);
      printf("%d rows in table tutorials_test1.\n", $row[0]);
      mysqli_free_result($result);
   }
   mysqli_rollback($conn);

   if ($result = mysqli_query($conn, "SELECT COUNT(*) FROM tutorials_test1")) {
      $row = mysqli_fetch_row($result);
      printf("%d rows in table tutorials_test1 (after rollback).\n", $row[0]);
      mysqli_free_result($result);
   }
   mysqli_query($conn, "DROP TABLE tutorials_test1");
   
   $conn->close();
?>

O exemplo de saída do código acima deve ser assim -

Success... localhost:3306 via TCP/IP 0 rows in table tutorials_test1. 
0 rows in table tutorials_test1 (after rollback).