Rumah > pembangunan bahagian belakang > tutorial php > Bagaimana untuk Menguruskan Transaksi Pangkalan Data MySQL dengan Sambungan mysqli PHP?

Bagaimana untuk Menguruskan Transaksi Pangkalan Data MySQL dengan Sambungan mysqli PHP?

Susan Sarandon
Lepaskan: 2024-12-05 11:51:13
asal
644 orang telah melayarinya

How to Manage MySQL Database Transactions with PHP's mysqli Extension?

Menyiasat Pangkalan Data MySQL dengan Transaksi

Menggunakan Transaksi dengan mysqli

Transaksi ialah aspek penting dalam pengurusan pangkalan data, memastikan urutan operasi pangkalan data sama ada dilaksanakan sepenuhnya atau digulung semula jika sebarang ralat berlaku. Dengan sambungan mysqli MySQL untuk PHP, transaksi dikendalikan melalui dua fungsi penting:

$mysqli->autocommit(FALSE); // Start transaction
$mysqli->commit(); // End transaction
Salin selepas log masuk

Memulakan Transaksi

Untuk memulakan transaksi, anda perlu memanggil $mysqli->autocommit(FALSE );. Ini melumpuhkan autokomit, membolehkan anda melaksanakan berbilang pertanyaan dalam transaksi yang sama.

Melaksanakan Pertanyaan Dalam Transaksi

Setelah transaksi dimulakan, anda boleh melaksanakan sebarang bilangan pertanyaan di dalamnya. Walau bagaimanapun, pertanyaan ini tidak akan digunakan secara kekal pada pangkalan data sehingga anda melakukan transaksi secara eksplisit.

Melakukan Transaksi

$mysqli->commit(); fungsi memuktamadkan transaksi dan menggunakan semua perubahan yang dibuat semasa transaksi itu ke pangkalan data. Jika tiada ralat, transaksi berjaya dan perubahan menjadi kekal.

Memutar Balik Transaksi

Jika ralat berlaku semasa transaksi, atau jika anda perlu mengembalikan perubahan yang dibuat , anda boleh memanggil mysqli->rollback(); bukannya mysqli->commit();. Ini akan membuang semua perubahan yang dibuat dalam transaksi itu dan pangkalan data akan kembali ke keadaan sebelumnya.

Contoh

Coretan kod berikut menunjukkan cara untuk memulakan dan menamatkan transaksi dalam mysqli:

$mysqli->autocommit(FALSE);

$mysqli->query("UPDATE `table` SET `col` = 2");
$mysqli->query("UPDATE `table1` SET `col1` = 3");

$mysqli->commit(); // End transaction
Salin selepas log masuk

Dalam contoh ini, dua pernyataan pertanyaan dilaksanakan dalam urus niaga yang sama. Walau bagaimanapun, tiada perubahan digunakan pada pangkalan data sehingga transaksi dilakukan. Jika sebarang ralat berlaku sebelum $mysqli->commit(); dipanggil, perubahan boleh ditarik balik dengan memanggil $mysqli->rollback();.

Atas ialah kandungan terperinci Bagaimana untuk Menguruskan Transaksi Pangkalan Data MySQL dengan Sambungan mysqli PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan