Section Artikel
Definisi dan Penggunaan
Fungsi rollback() / mysqli_rollback() digunakan untuk memutar kembali transaksi saat ini untuk koneksi database yang ditentukan.
Tip: Gunakan fungsi commit () untuk melakukan transaksi saat ini dan fungsi autocommit() untuk mengaktifkan atau menonaktifkan modifikasi database otomatis.
Syntax
Object oriented style:
$mysqli -> rollback(flags, name)
Procedural style:
mysqli_rollback(connection, flags, name)
Nilai Parameter
| Parameter | Deskripsi |
|---|---|
| connection | Required. Menentukan koneksi MySQL yang akan digunakan |
| flags | Optional. Sebuah konstanta: MYSQLI_TRANS_COR_AND_CHAIN – Menambahkan “AND CHAIN” MYSQLI_TRANS_COR_AND_NO_CHAIN – Menambahkan “AND NO CHAIN” MYSQLI_TRANS_COR_RELEASE – Menambahkan “RELEASE” MYSQLI_TRANS_COR_NO_RELEASE – Menambahkan “NO RELEASE” |
| name | Optional. ROLLBACK / * name * / dijalankan jika parameter ini ditentukan |
Detail Teknis
| Return Value: | TRUE jika sukses. FALSE jika gagal |
|---|---|
| PHP Version: | 5+ |
| PHP Changelog: | PHP 5.5: Menambahkan parameter flag dan nama |
Contoh – Object oriented style
Matikan commit otomatis, buat beberapa kueri, commit kueri, lalu putar kembali transaksi saat ini:
<?php $mysqli = new mysqli("localhost","my_user","my_password","my_db"); if ($mysqli -> connect_errno) { echo "Gagal untuk menghubungkan ke MySQL: " . $mysqli -> connect_error; exit(); } // Matikan autocommit $mysqli -> autocommit(FALSE); // Insert beberapa 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)"); // Transaksi commit if (!$mysqli -> commit()) { echo "Commit transaction failed"; exit(); } // Transaksi rollback $mysqli -> rollback(); $mysqli -> close(); ?>
Contoh – Procedural style
Matikan komit otomatis, buat beberapa kueri, komit kueri, lalu putar kembali transaksi saat ini:
<?php
$con=mysqli_connect("localhost","my_user","my_password","my_db");
if (mysqli_connect_errno()) {
echo "Gagal untuk menghubungkan ke MySQL: " . mysqli_connect_error();
exit;
}
// Matikan autocommit
mysqli_autocommit($con,FALSE);
// Insert beberapa 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)");
// Transaksi commit
if (!$mysqli_commit($con)) {
echo "Commit transaction failed";
exit();
}
// Transaksi rollback
mysqli_rollback($con);
// Tutup koneksi
mysqli_close($con);
?>