Latest web development tutorials
×

PHP kuliah

PHP kuliah PHP pengantar singkat PHP memasang PHP tatabahasa PHP variabel PHP echo/print PHP Jenis Data PHP konstan PHP tali PHP operator PHP If...Else PHP Switch PHP susunan PHP Sorting array PHP superglobals PHP While sirkulasi PHP For sirkulasi PHP fungsi PHP Variabel sihir PHP Ruang nama PHP Berorientasi Objek

PHP bentuk

PHP bentuk PHP bentuk Authentication PHP bentuk - bidang yang harus diisi PHP bentuk - email verifikasi dan URL PHP contoh bentuk lengkap PHP $_GET variabel PHP $_POST variabel

PHP canggih Tutorial

PHP Array multidimensi PHP tanggal PHP berisi PHP berkas PHP Upload File PHP Cookie PHP Session PHP E-mail PHP keamanan E-mail PHP Error PHP Exception PHP filter PHP filter lanjutan PHP JSON

PHP 7 Fitur baru

PHP 7 Fitur baru

PHP database

PHP MySQL pengantar singkat PHP MySQL koneksi PHP MySQL Membuat database PHP MySQL Buat tabel data PHP MySQL memasukkan data PHP MySQL Menyisipkan beberapa data yang PHP MySQL Laporan disiapkan PHP MySQL membaca data PHP MySQL WHERE PHP MySQL ORDER BY PHP MySQL UPDATE PHP MySQL DELETE PHP ODBC

PHP XML

XML Expat Parser XML DOM XML SimpleXML

PHP & AJAX

AJAX pengantar singkat AJAX PHP AJAX database AJAX XML AJAX pencarian real-time AJAX RSS Reader AJAX suara

PHP Reference manual

PHP Array PHP Calendar PHP cURL PHP Date PHP Directory PHP Error PHP Filesystem PHP Filter PHP FTP PHP HTTP PHP Libxml PHP Mail PHP Math PHP Misc PHP MySQLi PHP PDO PHP SimpleXML PHP String PHP XML PHP Zip PHP Timezones PHP image Processing PHP RESTful

Urusan PDO PHP dan auto-commit

Pedoman PHP PDO Referensi Pedoman PHP PDO Referensi

Sekarang terhubung melalui PDO pergi sebelum dimulainya query, Anda harus terlebih dahulu memahami bagaimana PDO adalah untuk mengelola urusan.

dukungan transaksi empat sifat (ACID):

  • Atomicity (atomicity)
  • Konsistensi (konsistensi)
  • Isolasi (isolasi)
  • Persistent (Durability)

Lebih sederhana, operasi pun dilakukan dalam suatu transaksi, bahkan penerapan secara bertahap, tetapi juga untuk menjamin keamanan yang diterapkan untuk database, dan tidak akan diserahkan dalam gangguan waktu dari koneksi lain.

operasi transaksi juga dapat secara otomatis dicabut atas permintaan (dengan asumsi belum diserahkan), yang membuatnya lebih mudah untuk menangani kesalahan dalam naskah.

Transaksi ini biasanya dilakukan oleh sejumlah perubahan "tabungan" dan kemudian dibiarkan berlaku dan dilaksanakan; manfaat untuk melakukannya adalah untuk memberikan efisiensi ini dapat sangat berubah.

Dengan kata lain, transaksi dapat membuat script Anda lebih cepat dan berpotensi lebih kuat (Anda masih perlu untuk menggunakannya dengan benar untuk menuai manfaat yang).

Sayangnya, tidak setiap database yang mendukung transaksi, jadi ketika Anda pertama kali membuka koneksi, PDO membutuhkan disebut "auto-komit" mode operasi.

Auto-komit modus berarti bahwa jika dukungan database, setiap query dijalankan memiliki transaksi implisit sendiri, jika database tidak mendukung transaksi, tidak ada.

Jika Anda membutuhkan transaksi, Anda harus menggunakan metode PDO :: beginTransaction () untuk memulai. Jika driver yang mendasari tidak mendukung transaksi, melemparkan PDOException pengecualian (terlepas dari apa jenis pengaturan penanganan error, ini adalah kondisi kesalahan serius).

Setelah transaksi tersedia PDO :: komit () atau PDO :: rollback () untuk menyelesaikan, tergantung pada kode transaksi berjalan dengan sukses.

Catatan: PDO hanya apakah kemampuan pemrosesan transaksi dalam pemeriksaan lapisan driver. Jika beberapa kondisi runtime berarti bahwa transaksi tidak tersedia, dan layanan database menerima permintaan untuk memulai transaksi, PDO :: beginTransaction () masih akan mengembalikan TRUE dan tidak ada kesalahan. Coba gunakan transaksi adalah contoh yang baik dalam tabel database MyISAM MySQL.

Ketika script berakhir atau sambungan akan segera ditutup, jika tidak ada transaksi selesai, PDO otomatis akan memutar kembali transaksi. mengukur keamanan membantu untuk menghindari inkonsistensi dalam script berakhir tiba-tiba - jika tidak secara eksplisit melakukan transaksi, maka asumsi yang salah di suatu tempat, sehingga rollback dilakukan untuk memastikan keamanan data.

Catatan: Hanya memulai transaksi PDO :: beginTransaction () kemudian, mungkin terjadi secara otomatis dibatalkan. Jika Anda secara manual mengeluarkan permintaan untuk memulai transaksi, PDO tidak bisa tahu, sehingga, jika perlu, tidak dapat diperpanjang kembali.

Dalam transaksi mengeksekusi bets:

Pada contoh berikut, misalkan Anda membuat satu set entri untuk karyawan baru, menetapkan ID 23 adalah. Selain data dasar orang pendaftaran, tetapi juga Anda perlu untuk merekam gajinya.

Kedua update selesai itu sangat sederhana, tapi dengan menutup PDO :: beginTransaction () dan PDO :: komit () panggilan, adalah mungkin untuk memastikan bahwa sebelum perubahan, orang lain tidak dapat melihat perubahan ini.

Jika terjadi kesalahan, menangkap memblokir semua perubahan sejak transaksi tersebut digulung kembali dari awal, dan output pesan kesalahan.

<?php
try {
  $dbh = new PDO('odbc:SAMPLE', 'db2inst1', 'ibmdb2', 
      array(PDO::ATTR_PERSISTENT => true));
  echo "Connected\n";
} catch (Exception $e) {
  die("Unable to connect: " . $e->getMessage());
}

try {  
  $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

  $dbh->beginTransaction();
  $dbh->exec("insert into staff (id, first, last) values (23, 'Joe', 'Bloggs')");
  $dbh->exec("insert into salarychange (id, amount, changedate) 
      values (23, 50000, NOW())");
  $dbh->commit();
  
} catch (Exception $e) {
  $dbh->rollBack();
  echo "Failed: " . $e->getMessage();
}
?>

Tidak terbatas pada perubahan dalam transaksi, dapat mengeluarkan pertanyaan yang kompleks untuk mengambil data, tetapi juga untuk membangun lebih banyak perubahan dan query menggunakan informasi yang, ketika transaksi aktif, Anda dapat memastikan bahwa orang lain tidak bisa membuat perubahan dalam operasi berlangsung.


Pedoman PHP PDO Referensi Pedoman PHP PDO Referensi