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).