mysqli::rollback, mysqli_rollback
mysqli::rollbackmysqli_rollbackRolls back current transaction
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_connectormysqli_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 |