Transaksi dengan PDO
Kelompokkan beberapa kueri ke dalam transaksi atomik dengan beginTransaction dan commit.
Transaksi dengan PDO adalah pelajaran PHP Academy gratis di CoddyKit. Ini adalah pelajaran 4 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar PHP Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus PHP Academy mencakup 4 pelajaran total.
Apa Itu Transaksi?
Transaksi mengelompokkan beberapa pernyataan SQL menjadi satu unit atomik: semuanya berhasil (diterapkan) atau semuanya dibatalkan.
Properti ACID
Transaksi menjamin ACID: atomisitas, konsistensi, isolasi, dan durabilitas.
beginTransaction()
Mulai transaksi dengan $pdo->beginTransaction(). Penerapan otomatis dinonaktifkan hingga Anda memanggil commit() atau rollBack().
commit()
Menyimpan secara permanen semua perubahan yang dibuat sejak beginTransaction().
rollBack()
Membuang semua perubahan yang dibuat sejak beginTransaction(), sehingga basis data kembali ke keadaannya sebelum transaksi.
Pola Transaksi
Selalu bungkus transaksi dengan try/catch:
<?php
try {
$pdo->beginTransaction();
$pdo->prepare("UPDATE accounts SET balance = balance - ? WHERE id = ?")
->execute([100, $senderId]);
$pdo->prepare("UPDATE accounts SET balance = balance + ? WHERE id = ?")
->execute([100, $receiverId]);
$pdo->commit();
} catch (PDOException $e) {
$pdo->rollBack();
throw $e;
}Titik Simpan
PDO tidak mendukung transaksi bertingkat secara bawaan. Gunakan perintah SQL SAVEPOINT untuk membatalkan sebagian transaksi.
inTransaction()
Periksa apakah transaksi sedang aktif dengan $pdo->inTransaction(). Mengembalikan true atau false.
Mode Penerapan Otomatis
Secara bawaan, PDO berada dalam mode penerapan otomatis: setiap pernyataan langsung diterapkan. beginTransaction() menonaktifkan penerapan otomatis.
Tingkat Isolasi
MySQL mendukung: READ UNCOMMITTED, READ COMMITTED, REPEATABLE READ (bawaan), SERIALIZABLE. Atur dengan $pdo->exec("SET TRANSACTION ISOLATION LEVEL READ COMMITTED").
Kapan Menggunakan Transaksi
Gunakan untuk: transfer bank, pembuatan pesanan dengan pengurangan inventaris, atau penulisan ke banyak tabel apa pun yang tidak boleh selesai sebagian.
DDL dan Transaksi
Di MySQL, pernyataan DDL (CREATE TABLE, ALTER TABLE) menyebabkan penerapan implisit. Anda tidak dapat membatalkan DDL di dalam transaksi.
Pemeriksaan Cepat
Apa yang dilakukan rollBack()?
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Transaksi dengan PDO” gratis?
Ya — teks lengkap “Transaksi dengan PDO” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus PHP Academy, upgrade ke CoddyKit PRO. Kursus PHP Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Transaksi dengan PDO”?
Kelompokkan beberapa kueri ke dalam transaksi atomik dengan beginTransaction dan commit. Kamu berlatih PHP Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai PHP Academy?
Tidak diperlukan pengalaman sebelumnya. PHP Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 4 dari 4.
Berapa lama pelajaran “Transaksi dengan PDO” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran PHP Academy ini?
Ya. Setiap pelajaran PHP Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Menghubungkan ke MySQL dengan PDO
- Pernyataan Terpraproses dan Pengikatan
- Mengambil Hasil dengan PDO
- Transaksi dengan PDO