Contoh Transaksi PHP MySQL
Transaksi dalam PHP dan MySQL membolehkan anda mengumpulkan set pertanyaan sebagai unit kerja atom tunggal. Ini bermakna jika salah satu pertanyaan gagal, semua perubahan yang dibuat oleh urus niaga akan ditarik balik.
Cara Menggunakan Transaksi
Untuk menggunakan transaksi dalam PHP dan MySQL, anda perlu:
Contoh
Berikut ialah contoh mudah cara menggunakan transaksi dalam PHP dan MySQL:
mysql_query("SET AUTOCOMMIT=0"); mysql_query("START TRANSACTION"); $a1 = mysql_query("INSERT INTO rarara (l_id) VALUES('1')"); $a2 = mysql_query("INSERT INTO rarara (l_id) VALUES('2')"); if ($a1 and $a2) { mysql_query("COMMIT"); } else { mysql_query("ROLLBACK"); }
Dalam contoh ini, pernyataan COMMIT hanya dilaksanakan jika kedua-dua $a1 dan $a2 berjaya. Jika salah satu pertanyaan gagal, pernyataan ROLLBACK akan dilaksanakan.
Menggunakan Transaksi dengan PDO
Kelas PDO menyediakan cara yang lebih moden dan berorientasikan objek untuk bekerja dengan transaksi MySQL. Untuk menggunakan transaksi dengan PDO, anda perlu:
Contoh
Berikut ialah contoh cara menggunakan transaksi dengan PDO:
try { $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $pdo->beginTransaction(); $pdo->exec("INSERT INTO rarara (l_id) VALUES('1')"); $pdo->exec("INSERT INTO rarara (l_id) VALUES('2')"); $pdo->commit(); } catch (\PDOException $e) { $pdo->rollback(); throw $e; }
Dalam contoh ini, kaedah commit() hanya dipanggil jika kedua-dua pertanyaan berjaya. Jika salah satu pertanyaan gagal, kaedah rollback() dipanggil dan pengecualian akan dilemparkan.
Atas ialah kandungan terperinci Bagaimana untuk Mengurus Transaksi MySQL dengan Berkesan dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!