MySQLi - İşlemler
İşlem, tek bir iş birimi gibi gerçekleştirilen sıralı bir veritabanı işleme işlemleri grubudur. Diğer bir deyişle, grup içindeki her bir işlem başarılı olmadıkça bir işlem asla tamamlanmayacaktır. İşlem içindeki herhangi bir işlem başarısız olursa, işlemin tamamı başarısız olur.
Pratik olarak, birçok SQL sorgusunu bir grupta toplayacaksınız ve hepsini bir işlemin parçası olarak birlikte yürüteceksiniz.
İşlemlerin Özellikleri
İşlemler, genellikle ACID kısaltmasıyla anılan aşağıdaki dört standart özelliğe sahiptir -
Atomicity- iş birimindeki tüm işlemlerin başarıyla tamamlanmasını sağlar; aksi takdirde, işlem başarısızlık noktasında iptal edilir ve önceki işlemler önceki durumuna geri döndürülür.
Consistency - başarıyla tamamlanmış bir işlemden sonra veritabanının durumları doğru şekilde değiştirmesini sağlar.
Isolation - İşlemlerin birbirleri üzerinde bağımsız ve şeffaf bir şekilde işlemesini sağlar.
Durability - Bir sistem arızası durumunda taahhüt edilen bir işlemin sonucunun veya etkisinin devam etmesini sağlar.
MySQL'de işlemler BEGIN WORK ifadesiyle başlar ve COMMIT veya ROLLBACK ifadesiyle biter. Başlangıç ve bitiş ifadeleri arasındaki SQLi komutları işlemin büyük kısmını oluşturur.
COMMIT ve GERİ DÖN
Bu iki anahtar kelime Commit ve Rollback çoğunlukla MySQL İşlemleri için kullanılır.
Başarılı bir işlem tamamlandığında, ilgili tüm tablolarda yapılan değişikliklerin geçerli olması için COMMIT komutu verilmelidir.
Bir hata oluşursa, işlemde başvurulan her tabloyu önceki durumuna döndürmek için bir ROLLBACK komutu verilmelidir.
Adlı oturum değişkenini ayarlayarak bir işlemin davranışını kontrol edebilirsiniz. AUTOCOMMIT. AUTOCOMMIT 1 (varsayılan) olarak ayarlanmışsa, her SQL ifadesi (bir işlemin içinde veya dışında) tam bir işlem olarak kabul edilir ve tamamlandığında varsayılan olarak taahhüt edilir. AUTOCOMMIT 0 olarak ayarlandığında, SET AUTOCOMMIT = 0 komutunu yayınlayarak, sonraki ifade dizisi bir işlem gibi davranır ve açık bir COMMIT ifadesi yayınlanana kadar hiçbir etkinlik gerçekleştirilmez.
Bu SQL komutlarını PHP'de şu komutu kullanarak çalıştırabilirsiniz: mysqli_query() işlevi.
İşlem Üzerine Genel Örnek
Bu olaylar dizisi, kullanılan programlama dilinden bağımsızdır; mantıksal yol, uygulamanızı oluşturmak için kullandığınız dilde oluşturulabilir.
Bu SQL komutlarını PHP'de şu komutu kullanarak çalıştırabilirsiniz: mysqli_query() işlevi.
SQL komutu vererek işleme başlayın BEGIN WORK.
SELECT, INSERT, UPDATE veya DELETE gibi bir veya daha fazla SQL komutu verin.
Herhangi bir hata olup olmadığını ve her şeyin ihtiyacınıza göre olup olmadığını kontrol edin.
Herhangi bir hata varsa, ROLLBACK komutunu verin, aksi takdirde bir COMMIT komutu verin.
MySQLi'de İşlem Güvenli Tablo Türleri
İşlemleri doğrudan kullanamazsınız, kullanabilirsiniz ancak bunlar güvenli ve garantili olmaz. MySQLi programlamanızda işlemleri kullanmayı planlıyorsanız, tablolarınızı özel bir şekilde oluşturmanız gerekir. İşlemleri destekleyen birçok tablo türü vardır, ancak en popüler olanıInnoDB.
InnoDB tabloları desteği, MySQLi'yi kaynaktan derlerken belirli bir derleme parametresi gerektirir. MySQLi sürümünüz InnoDB desteğine sahip değilse, İnternet Servis Sağlayıcınızdan InnoDB tablo türlerini destekleyen bir MySQLi sürümü oluşturmasını veya Windows veya Linux / UNIX için MySQL-Max ikili dağıtımını indirip yüklemesini isteyin ve aşağıdaki tablo türü ile çalışın bir geliştirme ortamı.
MySQLi kurulumunuz InnoDB tablolarını destekliyorsa, bir TYPE = InnoDBtablo oluşturma ifadesinin tanımı. Örneğin, aşağıdaki kod, tutorials_innodb adında bir InnoDB tablosu oluşturur -
root@host# mysql -u root -p;
Enter password:*******
mysql> use TUTORIALS;
Database changed
mysql> create table tutorials_innodb
-> (
-> tutorial_author varchar(40) NOT NULL,
-> tutorial_count INT
-> ) TYPE = InnoDB;
Query OK, 0 rows affected (0.02 sec)
InnoDB hakkında daha fazla bilgi edinmek için aşağıdaki bağlantıyı kontrol edin
Gibi diğer tablo türlerini kullanabilirsiniz GEMINI veya BDB, ancak bu iki türü destekleyip desteklemediğine bağlıdır.