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
Susan Sarandonasal
2024-12-05 11:51:13646semak imbas

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

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

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!

Kenyataan:
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