Rumah > pembangunan bahagian belakang > tutorial php > Bagaimanakah Saya Memulakan dan Menamatkan Transaksi dalam MySQLi?

Bagaimanakah Saya Memulakan dan Menamatkan Transaksi dalam MySQLi?

DDD
Lepaskan: 2024-12-06 21:13:12
asal
952 orang telah melayarinya

How Do I Start and End Transactions in MySQLi?

Mulakan dan Tamatkan Transaksi dalam MySQLi

Apabila menggunakan MySQL, memahami cara transaksi berfungsi adalah penting. Transaksi berfungsi sebagai cara untuk mengumpulkan berbilang pertanyaan dan memastikan ia dilaksanakan secara atom, bermakna sama ada semua atau tiada pertanyaan berjaya.

Memulakan Transaksi

Dalam MySQLi, transaksi dimulakan dengan menyahaktifkan mod autocommit menggunakan pernyataan autocommit(FALSE). Autocommit ialah tingkah laku lalai MySQL, yang bermaksud setiap pertanyaan dilaksanakan secara bebas dan serta-merta. Dengan melumpuhkan autokomit, anda mendayakan kawalan transaksi, membolehkan anda mengumpulkan berbilang pertanyaan dan melaksanakannya sebagai satu unit.

Menamatkan Transaksi

Selepas mengumpulkan pertanyaan yang diingini dalam transaksi, anda mesti secara eksplisit tamatkannya. Terdapat dua cara untuk menamatkan transaksi:

  1. Komit: Jika semua pertanyaan dalam transaksi berjaya dilaksanakan tanpa ralat, anda boleh melengkapkan transaksi menggunakan kaedah commit(). Ini akan menyimpan semua perubahan yang dibuat semasa urus niaga secara kekal ke pangkalan data.
  2. Timbal Balik: Jika mana-mana pertanyaan dalam urus niaga gagal, anda boleh membatalkan transaksi menggunakan kaedah rollback() . Ini akan membuang semua perubahan yang dibuat semasa transaksi, mengembalikan pangkalan data kepada keadaannya sebelum transaksi bermula.

Contoh

Pertimbangkan coretan kod PHP berikut:

<?php
// Database connection
$mysqli = new mysqli('localhost', 'username', 'password', 'database');

// Start transaction
$mysqli->autocommit(FALSE);

// Queries within the transaction
$mysqli->query('UPDATE `table` SET `column` = 1');
$mysqli->query('UPDATE `table1` SET `column1` = 2');

// Commit or rollback
if ($allQueriesExecutedSuccessfully) {
  $mysqli->commit();
} else {
  $mysqli->rollback();
}
?>
Salin selepas log masuk

Dalam contoh ini, mod autokomit dilumpuhkan menggunakan autokomit(FALSE), memulakan transaksi. Berbilang pertanyaan dilaksanakan dalam transaksi. Berdasarkan status pelaksanaan, urus niaga itu sama ada dilakukan atau ditarik balik.

Atas ialah kandungan terperinci Bagaimanakah Saya Memulakan dan Menamatkan Transaksi dalam MySQLi?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan