mysqli::rollback, mysqli_rollback


Description

Object oriented stylebool mysqli::rollback();

Procedural stylebool mysqli_rollback(mysqli link);

Rollbacks the current transaction for the database.

Parameters

link

Procedural style only: A link identifier returned by mysqli_connect or mysqli_init

Return Values

Returns TRUE on success or FALSE on failure.

Examples

Example 20.133. mysqli::rollback example

Object oriented style

<?php
$mysqli = new mysqli('localhost', 'my_user', 'my_password', 'world');
/* check connection */
if (mysqli_connect_errno()) {
 printf('Connect failed: %s\n', mysqli_connect_error());
 exit();
}
/* disable autocommit */
$mysqli->autocommit(FALSE);
$mysqli->query('CREATE TABLE myCity LIKE City');
$mysqli->query('ALTER TABLE myCity Type=InnoDB');
$mysqli->query('INSERT INTO myCity SELECT * FROM City LIMIT 50');
/* commit insert */
$mysqli->commit();
/* delete all rows */
$mysqli->query('DELETE FROM myCity');
if ($result = $mysqli->query('SELECT COUNT(*) FROM myCity')) {
 $row = $result->fetch_row();
 printf('%d rows in table myCity.\n', $row[0]);
 /* Free result */
 $result->close();
}
/* Rollback */
$mysqli->rollback();
if ($result = $mysqli->query('SELECT COUNT(*) FROM myCity')) {
 $row = $result->fetch_row();
 printf('%d rows in table myCity (after rollback).\n', $row[0]);
 /* Free result */
 $result->close();
}
/* Drop table myCity */
$mysqli->query('DROP TABLE myCity');
$mysqli->close();
?>

Procedural style

<?php
$link = mysqli_connect('localhost', 'my_user', 'my_password', 'world');
/* check connection */
if (mysqli_connect_errno()) {
 printf('Connect failed: %s\n', mysqli_connect_error());
 exit();
}
/* disable autocommit */
mysqli_autocommit($link, FALSE);
mysqli_query($link, 'CREATE TABLE myCity LIKE City');
mysqli_query($link, 'ALTER TABLE myCity Type=InnoDB');
mysqli_query($link, 'INSERT INTO myCity SELECT * FROM City LIMIT 50');
/* commit insert */
mysqli_commit($link);
/* delete all rows */
mysqli_query($link, 'DELETE FROM myCity');
if ($result = mysqli_query($link, 'SELECT COUNT(*) FROM myCity')) {
 $row = mysqli_fetch_row($result);
 printf('%d rows in table myCity.\n', $row[0]);
 /* Free result */
 mysqli_free_result($result);
}
/* Rollback */
mysqli_rollback($link);
if ($result = mysqli_query($link, 'SELECT COUNT(*) FROM myCity')) {
 $row = mysqli_fetch_row($result);
 printf('%d rows in table myCity (after rollback).\n', $row[0]);
 /* Free result */
 mysqli_free_result($result);
}
/* Drop table myCity */
mysqli_query($link, 'DROP TABLE myCity');
mysqli_close($link);
?>

The above examples will output:

0 rows in table myCity.
50 rows in table myCity (after rollback).

See Also

mysqli_commit
mysqli_autocommit

Retornar