PHP'de "transaction" (işlem) terimi, birden fazla veritabanı işlemini gruplamak ve birlikte çalıştırmak için kullanılan bir kavramdır. Bir işlem, veritabanı üzerindeki değişiklikleri yapmak için bir dizi sorguyu içeren bir mantıksal bir birimdir. İşlemler genellikle "başarılı" bir şekilde tamamlanmalıdır, yani tüm sorgular başarılı bir şekilde gerçekleştirildiğinde veritabanı üzerinde kalıcı değişiklikler yapılır. Ancak, herhangi bir sorgunun başarısız olması durumunda tüm değişiklikler geri alınır (geri alma işlemi veya rollback denir).
İşlemler, veritabanı bağlantısı üzerinde çalışır ve genellikle ACID (Atomicity, Consistency, Isolation, Durability) özelliklerini destekler. Bu özellikler işlemleri güvenli ve güvenilir hale getirir. İşlemler aşağıdaki adımları içerir:
Örnek olarak, aşağıdaki kod parçasında bir işlem örneği gösterilmiştir:
try {
// Veritabanı bağlantısı yapılır
$pdo = new PDO("mysql:host=localhost;dbname=mydatabase", "username", "password");
// İşlem başlatılır
$pdo->beginTransaction();
// İşlemi gerçekleştirecek sorgular
$pdo->exec("INSERT INTO users (name, email) VALUES ('John', 'john@example.com')");
$pdo->exec("UPDATE orders SET status = 'completed' WHERE user_id = 1");
// Tüm sorgular başarılıysa, işlem tamamlanır
$pdo->commit();
echo "İşlem başarıyla tamamlandı.";
} catch (PDOException $e) {
// Hata durumunda işlem geri alınır
$pdo->rollBack();
echo "İşlem sırasında bir hata oluştu: " . $e->getMessage();
}
Yukarıdaki örnekte, PDO
sınıfı kullanılarak veritabanı bağlantısı yapılmış ve bir işlem başlatılmıştır. Ardından, exec()
metoduyla sorgular gerçekleştirilmiştir. Eğer tüm sorgular başarılı bir şekilde gerçekleştirildiyse, işlem commit()
metoduyla tamamlanır ve değişiklikler kalıcı hale getirilir. Hata durumunda ise PDOException
hatası alınır ve işlem rollBack()
metoduyla geri alınır.
İşlemler, birden fazla sorguyu atomik bir birim olarak gruplamak ve veritabanı konsistansını sağlamak için önemlidir. Özellikle birbiriyle ilişkili sorguları sıralı bir şekilde çalıştırmak ve tüm veya hiçbir değişiklik yapmak istediğimiz durumlarda işlemler kullanılır. Bu sayede veritabanı tutarlı bir durumda kalır ve veri bütünlüğü korunur.
Transaction (işlem) kavramı, PHP'nin veritabanı işlemlerini yönetmek için sağladığı özelliklerden biridir ve veritabanı işlemlerini güvenli ve tutarlı bir şekilde gerçekleştirmemize olanak tanır.