Функция PHP mysqli rollback()
Пример — объектно-ориентированный стиль
Отключите автоматическую фиксацию, сделайте несколько запросов, зафиксируйте запросы, а затем откатите текущую транзакцию:
<?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();
?>
Посмотрите на пример процедурного стиля внизу.
Определение и использование
Функция rollback()/mysqli_rollback() откатывает текущую транзакцию для указанного подключения к базе данных.
Совет: Также обратите внимание на функцию commit() , которая фиксирует текущую транзакцию, и функцию autocommit() , которая включает или выключает автоматическую фиксацию изменений базы данных.
Синтаксис
Объектно-ориентированный стиль:
$mysqli ->
rollback(flags, name)
Процедурный стиль:
mysqli_rollback(connection, flags, name)
Значения параметров
Parameter | Description |
---|---|
connection | Required. Specifies the MySQL connection to use |
flags | Optional. A constant:
|
name | Optional. ROLLBACK/*name*/ is executed if this parameter is specified |
Технические детали
Возвращаемое значение: | TRUE в случае успеха. FALSE в случае неудачи |
---|---|
Версия PHP: | 5+ |
Журнал изменений PHP: | PHP 5.5: добавлены флаги и параметры имени |
Пример — процедурный стиль
Отключите автоматическую фиксацию, сделайте несколько запросов, зафиксируйте запросы, а затем откатите текущую транзакцию:
<?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