PDO (PHP Data Objects), PHP programlama dilinde veritabanlarına erişim için kullanılan bir veritabanı erişim katmanıdır. PDO, farklı veritabanı sistemleriyle çalışmayı sağlayan bir arayüz sunar ve veritabanına bağlanmak için kullanılan ortak bir API sağlar.
PDO'nun temel özellikleri ve kullanımı şunlardır:
1. **Veritabanı Bağlantısı Oluşturma:**
PDO, çeşitli veritabanı sistemlerine (MySQL, PostgreSQL, SQLite, SQL Server vb.) bağlanmak için kullanılır. `PDO` sınıfı, veritabanı türüne ve bağlantı parametrelerine dayalı olarak bir veritabanı bağlantısı oluşturur.
```php
$dsn = 'mysql:host=localhost;dbname=mydatabase';
$username = 'username';
$password = 'password';
try {
$pdo = new PDO($dsn, $username, $password);
} catch (PDOException $e) {
echo 'Bağlantı hatası: ' . $e->getMessage();
}
```
2. **Hazırlanan İfadeler (Prepared Statements):**
PDO, SQL sorgularını güvenli hale getirmek için hazırlanan ifadeleri destekler. Bu, SQL enjeksiyon saldırılarından korunmaya yardımcı olur ve sorgu parametrelerini güvenli bir şekilde geçmek için `bindParam()` veya `bindValue()` yöntemleri kullanılır.
```php
$stmt = $pdo->prepare('SELECT * FROM users WHERE username = :username');
$stmt->bindParam(':username', $username);
$stmt->execute();
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);
```
3. **Veritabanı İşlemleri:**
PDO, veritabanı işlemlerini gerçekleştirmek için çeşitli yöntemler sağlar. Bunlar arasında veri ekleme, güncelleme, silme, sorgulama ve işlem başlatma/sonlandırma gibi işlemler bulunur.
```php
// Veri ekleme
$stmt = $pdo->prepare('INSERT INTO users (username, email) VALUES (?, ?)');
$stmt->execute([$username, $email]);
// Veri güncelleme
$stmt = $pdo->prepare('UPDATE users SET email = ? WHERE id = ?');
$stmt->execute([$newEmail, $userId]);
// Veri silme
$stmt = $pdo->prepare('DELETE FROM users WHERE id = ?');
$stmt->execute([$userId]);
```
4. **Hata Yakalama ve İşleme:**
PDO, veritabanı işlemleri sırasında oluşabilecek hataları yakalamak ve işlemek için `try-catch` bloklarıyla birlikte kullanılır. PDO'nun `PDOException` sınıfı, veritabanı işlemi sırasında ortaya çıkan hataları temsil eder.
PDO, PHP'de güvenli ve esnek bir veritabanı erişim katmanı sağlar. Bu sayede farklı veritabanı sistemleriyle çalışmak ve veritabanı işlemlerini güvenli bir şekilde gerçekleştirmek mümkün olur. Veritabanı işlemlerinde PDO kullanımı, PHP uygulamalarının güvenliği ve performansı açısından önemlidir.