Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk Menguruskan Transaksi Pangkalan Data MySQL dengan Sambungan mysqli PHP?
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
Untuk memulakan transaksi, anda perlu memanggil $mysqli->autocommit(FALSE );. Ini melumpuhkan autokomit, membolehkan anda melaksanakan berbilang pertanyaan dalam transaksi yang sama.
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.
$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.
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.
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!