PHP mysqli rollback() Function

❮ PHP mysqli Reference

Example - Object Oriented style

Turn off auto-committing, make some queries, commit the queries, then roll back the current transaction:

<?php
$mysqli = new mysqli("localhost","my_user","my_password","my_db");

if ($mysqli -> connect_errno) {
  echo "Failed to connect to MySQL: " . $mysqli -> connect_error;
  exit();
}

// Turn autocommit off
$mysqli -> autocommit(FALSE);

// Insert some values
$mysqli -> query("INSERT INTO Persons (FirstName,LastName,Age)
VALUES ('Peter','Griffin',35)");
$mysqli -> query("INSERT INTO Persons (FirstName,LastName,Age)
VALUES ('Glenn','Quagmire',33)");

// Commit transaction
if (!$mysqli -> commit()) {
  echo "Commit transaction failed";
  exit();
}

// Rollback transaction
$mysqli -> rollback();

$mysqli -> close();
?>

Look at example of procedural style at the bottom.


Definition and Usage

The rollback() / mysqli_rollback() function rolls back the current transaction for the specified database connection.

Tip: Also look at the commit() function, which commits the current transaction, and the autocommit() function, which turns on or off auto-committing database modifications.


Syntax

Object oriented style:

$mysqli -> rollback(flags, name)

Procedural style:

mysqli_rollback(connection, flags, name)

Parameter Values

Parameter Description
connection Required. Specifies the MySQL connection to use
flags Optional. A constant:
  • MYSQLI_TRANS_COR_AND_CHAIN - Appends "AND CHAIN"
  • MYSQLI_TRANS_COR_AND_NO_CHAIN - Appends "AND NO CHAIN"
  • MYSQLI_TRANS_COR_RELEASE - Appends "RELEASE"
  • MYSQLI_TRANS_COR_NO_RELEASE - Appends "NO RELEASE"
name Optional. ROLLBACK/*name*/ is executed if this parameter is specified

Technical Details

Return Value: TRUE on success. FALSE on failure
PHP Version: 5+
PHP Changelog: PHP 5.5: Added the flags and name parameters

Example - Procedural style

Turn off auto-committing, make some queries, commit the queries, then roll back the current transaction:

<?php
$con=mysqli_connect("localhost","my_user","my_password","my_db");

if (mysqli_connect_errno()) {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
  exit;
}

// Turn autocommit off
mysqli_autocommit($con,FALSE);

// Insert some values
mysqli_query($con,"INSERT INTO Persons (FirstName,LastName,Age)
VALUES ('Peter','Griffin',35)");
mysqli_query($con,"INSERT INTO Persons (FirstName,LastName,Age)
VALUES ('Glenn','Quagmire',33)");

// Commit transaction
if (!$mysqli_commit($con)) {
  echo "Commit transaction failed";
  exit();
}

// Rollback transaction
mysqli_rollback($con);

// Close connection
mysqli_close($con);
?>


❮ PHP mysqli Reference
Copyright 1999-2023 by Refsnes Data. All Rights Reserved.