PDO Nasıl Kullanılır? PDO Detaylı Anlatım
PHP PDO (PHP Data Objects) bir veritabanı erişim katmanıdır ve PHP içinde veritabanı ile iletişim kurmak için kullanılır. PDO, PHP’de çeşitli veritabanı sistemlerine (MySQL, PostgreSQL, Oracle, Microsoft SQL Server vb.) Erişim sağlar ve bu veritabanı sistemlerine ait özel sözdizimi kullanımını azaltır.
PDO, veritabanı sorgularını yaparken güvenlik açısından önemlidir, çünkü sorgularınızı otomatik olarak “parametrelerle birlikte” hazırlar. Bu, veritabanı sorgularınızın “SQL enjeksiyonu” (veritabanına güvenlik açığı oluşturabilecek bir saldırı türü) gibi güvenlik açıklarından korunmasını sağlar.
PDO’yu kullanmaya başlamak için, öncelikle PDO’yu PHP projenize dahil etmeniz gerekir. Bu, PHP projenizin başına aşağıdaki satırı ekleyerek yapılabilir:
require 'pdo.php';
Sonra, bir veritabanı bağlantısı oluşturmak için aşağıdaki gibi bir PDO nesnesi oluşturulur:
$pdo = new PDO('mysql:host=localhost;dbname=database_name', 'username', 'password');
Bu nesne, veritabanınıza bağlanmanızı ve veritabanı sorguları yapmanızı sağlar. Örneğin, bir veritabanı tablosundaki verileri okumak için aşağıdaki gibi bir sorgu yapabilirsiniz:
PDO SELECT İşlemi Nasıl Kullanılır?
$stmt = $pdo->query('SELECT * FROM table_name');
while ($row = $stmt->fetch()) {
echo $row['column_name'] . "\n";
}
PDO prepare() ve execute() Nedir? Kullanımı Nasıldır?
Parametrelerle birlikte sorgular yapmak için, sorgunuzun güvenli bir şekilde hazırlanması için PDO’nun “prepare” ve “execute” metodlarını kullanabilirsiniz. Örneğin, aşağıdaki gibi bir sorgu yapabilirsiniz:
$stmt = $pdo->prepare('SELECT * FROM table_name WHERE id = :id');
$stmt->execute(['id' => $id]);
while ($row = $stmt->fetch()) {
echo $row['column_name'] . "\n";
}
Bu örnekte, prepare
metodu ile sorgumuzu hazırlıyoruz ve :id
gibi bir parametre kullanıyoruz. Daha sonra, execute
metodu ile sorguyu çalıştırırken, bu parametrenin gerçek değerini belirtiriz (['id' => $id]
). Bu sayede, sorgumuz güvenli bir şekilde çalıştırılmış olur ve veritabanına bir “SQL enjeksiyonu” gibi güvenlik açığı oluşturabilecek bir saldırıdan korunmuş olur.
PDO INSERT, UPDATE, DELETE Kullanımı Nasıldır?
PDO, sadece SELECT sorgularını değil, aynı zamanda INSERT, UPDATE ve DELETE gibi sorguları da destekler. Örneğin, aşağıdaki gibi bir sorgu yaparak bir veritabanı tablosuna yeni bir satır ekleyebilirsiniz:
$stmt = $pdo->prepare('INSERT INTO table_name (column1, column2) VALUES (:value1, :value2)');
$stmt->execute(['value1' => $value1, 'value2' => $value2]);
Bu örnekte, prepare
metodu ile INSERT sorgumuzu hazırlıyoruz ve :value1
ve :value2
gibi iki parametre kullanıyoruz. Daha sonra, execute
metodu ile sorguyu çalıştırırken, bu parametrelerin gerçek değerlerini belirtiriz. Bu sayede, sorgumuz güvenli bir şekilde çalıştırılmış olur ve veritabanına bir “SQL enjeksiyonu” gibi güvenlik açığı oluşturabilecek bir saldırıdan korunmuş olur.
PDO, aynı zamanda bir veritabanı işlemi (transaction) oluşturmak ve yönetmek için de kullanılabilir. Örneğin, aşağıdaki gibi bir kod bloğu ile bir veritabanı işlemi oluşturabilir ve işlemin başarılı bir şekilde tamamlanıp tamamlanmadığını kontrol edebilirsiniz:
PDO beginTransaction() Nedir? Kullanımı Nasıldır?
$pdo->beginTransaction();
$stmt = $pdo->prepare('INSERT INTO table_name (column1, column2) VALUES (:value1, :value2)');
$stmt->execute(['value1' => $value1, 'value2' => $value2]);
$stmt = $pdo->prepare('UPDATE table_name SET column1 = :new_value WHERE id = :id');
$stmt->execute(['new_value' => $new_value, 'id' => $id]);
if ($error) {
$pdo->rollBack();
echo "Error, transaction rolled back\n";
} else {
$pdo->commit();
echo "Success, transaction committed\n";
}
Bu örnekte, beginTransaction
metodu ile bir veritabanı işlemi oluşturuyoruz ve daha sonra iki adet sorgu çalıştırıyoruz. Eğer bir hata oluşursa (örneğin $error
değişkeni true değerini alırsa), işlemi geri almak için rollBack
metodunu kullanıyoruz. Eğer hata yoksa, işlemi tamamlamak için commit
metodunu kullanıyoruz.
Bu şekilde, bir veritabanı işlemini birden fazla sorgunun bir bütün olarak çalıştırılıp tamamlanıp tamamlanmadığını kontrol edebilirsiniz. Bu, özellikle veritabanınızda çok sayıda değişiklik yapılması gereken durumlarda önemlidir, çünkü eğer bir hata oluşursa, tüm değişiklikler geri alınır ve veritabanınız eski haline döner.