PDO (PHP Data Objects) Nedir ?

a3b2jeo.png

logo.png


PDO (PHP Data Objects) Nedir ?
PDO (PHP Data Objects), PHP programlama dilinde veritabanlarına erişmek ve işlem yapmak için kullanılan bir veritabanı erişim katmanıdır. PDO, veritabanı bağlantıları ve sorguları oluşturma, çalıştırma ve sonuçları işleme gibi işlemleri kolaylaştırmak için tasarlanmıştır. Bu katman, farklı veritabanı türlerine (MySQL, PostgreSQL, SQLite, vb.) genel bir arabirim sağlar ve güvenli ve etkili bir şekilde veritabanı işlemleri yapmanıza olanak tanır.

PDO'nun ana hedeflerinden bazıları şunlardır:

  1. Taşınabilirlik: PDO, farklı veritabanı türleri arasında taşınabilir bir API sunar. Bu sayede aynı kod tabanını kullanarak farklı veritabanı sistemleriyle çalışabilirsiniz. Örneğin, aynı kodu MySQL ve PostgreSQL gibi farklı veritabanlarına uyarlayabilirsiniz.
  2. Güvenlik: PDO, SQL enjeksiyonu gibi güvenlik tehditlerine karşı otomatik olarak koruma sağlamak üzere tasarlanmıştır. Parametreli sorgular ve hazır ifadeler kullanarak veri girişlerini güvenli bir şekilde işlemenizi sağlar.
  3. Performans: PDO, sorguları hazır ifadeler şeklinde oluşturduğunda, sorgu derlemesinin veritabanı sunucusunda bir kere gerçekleşmesini sağlar. Bu, aynı sorguyu birden çok kez çalıştırmak zorunda kaldığınızda performans avantajı sağlar.
PDO, üç ana bileşenden oluşur:

  1. PDO Sürücüleri (Drivers): Farklı veritabanı sistemleri için özelleştirilmiş PDO sürücüleri bulunur. Her sürücü, belirli bir veritabanı türüyle iletişim kurmanıza yardımcı olur. Örneğin, MySQL için "pdo_mysql", PostgreSQL için "pdo_pgsql" gibi.
  2. PDO İfadeleri (Statements): PDO kullanarak oluşturulan sorguları ifadeler olarak adlandırabiliriz. Hazır ifadeler, veri girişlerini parametrelerle güvenli bir şekilde işlemenize olanak tanır.
  3. PDO Bağlantı Nesneleri (Connection Objects): PDO bağlantı nesneleri, veritabanına bağlanmanızı sağlar. Bağlantı nesnesi oluşturulduğunda, belirli bir veritabanı sürücüsü seçilir ve bu sürücüye özgü işlevler ve yöntemler kullanılabilir.
Örnek PDO kullanımı:

Kod:
// Veritabanına bağlanma
$dsn = "mysql:host=localhost;dbname=mydatabase";
$username = "username";
$password = "password";

try {
    $connection = new PDO($dsn, $username, $password);
    $connection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
    echo "Bağlantı hatası: " . $e->getMessage();
}

// Hazır ifade kullanımı
$stmt = $connection->prepare("SELECT * FROM users WHERE username = :username");
$username = "john";
$stmt->bindParam(":username", $username);
$stmt->execute();

// Sonuçları alma
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);

PDO, veritabanı işlemlerini daha güvenli ve taşınabilir hale getirmek için oldukça kullanışlı bir araçtır. Bu nedenle, modern PHP uygulamalarında sıklıkla tercih edilen bir veritabanı erişim katmanıdır.




PDO (PHP Data Objects) İle Başka Ne Yapılabilir ?
  1. Transaksiyon Yönetimi: PDO ile veritabanı işlemlerini transaksiyonlar içinde gerçekleştirebilirsiniz. Bu, birden fazla sorgunun bir arada çalışmasını ve gerektiğinde işlemi geri alma veya tamamlama esnekliği sağlar.

Kod:
try {
    $connection->beginTransaction();
    
    // Veritabanı sorguları
    
    $connection->commit(); // İşlemi onayla
} catch (PDOException $e) {
    $connection->rollBack(); // İşlemi geri al
    echo "Hata: " . $e->getMessage();
}

2.Çoklu Sorgular: PDO ile birden fazla sorguyu tek bir bağlantı üzerinden sırayla veya eş zamanlı olarak çalıştırabilirsiniz.

Kod:
$stmt1 = $connection->prepare("INSERT INTO table1 (column1) VALUES (?)");
$stmt2 = $connection->prepare("INSERT INTO table2 (column2) VALUES (?)");

$value = "data";

$stmt1->execute([$value]);
$stmt2->execute([$value]);

3.Veri Ekleme ve Güncelleme: PDO ile veritabanına yeni veri eklemek veya varolan veriyi güncellemek oldukça kolaydır.

Kod:
$stmt = $connection->prepare("INSERT INTO users (username, email) VALUES (?, ?)");
$stmt->execute([$username, $email]);

$stmt = $connection->prepare("UPDATE users SET email = ? WHERE id = ?");
$stmt->execute([$newEmail, $userId]);

4.Son Eklenen ID'yi Almak: Veritabanına yeni bir kayıt eklediğinizde, bu işlemin sonucunda otomatik olarak oluşturulan ID'yi alma işlemi PDO ile kolaylıkla yapılabilir.

Kod:
$stmt = $connection->prepare("INSERT INTO products (name) VALUES (?)");
$stmt->execute([$productName]);

$lastInsertId = $connection->lastInsertId();

5.Sorgu Sonuçlarını Alma: PDO ile sorguların sonuçlarını almak ve işlemek için farklı yöntemler kullanabilirsiniz. Örneğin fetchAll() ile tüm sonuçları bir dizi olarak alabilirsiniz.

Kod:
$stmt = $connection->prepare("SELECT * FROM products");
$stmt->execute();

$results = $stmt->fetchAll(PDO::FETCH_ASSOC);

6.Veri Silme: Veritabanından veri silme işlemini PDO ile gerçekleştirebilirsiniz.

Kod:
$stmt = $connection->prepare("DELETE FROM users WHERE id = ?");
$stmt->execute([$userId]);

7.Veritabanı Şemasını Sorgulama: PDO ile veritabanı şemasını (tablo isimleri, sütunlar, vb.) sorgulamak için PDO'nun getColumnMeta() fonksiyonunu kullanabilirsiniz.

Kod:
$stmt = $connection->prepare("SELECT * FROM users");
$stmt->execute();

$columns = [];
for ($i = 0; $i < $stmt->columnCount(); $i++) {
    $columns[] = $stmt->getColumnMeta($i)['name'];
}

print_r($columns);


PDO, veritabanı işlemleri ve yönetimi için oldukça esnek bir araçtır. Yukarıdaki örnekler, PDO'nun çeşitli yeteneklerini göstermektedir, ancak bu sadece birkaç örnekten ibarettir. Projelerinize göre PDO'yu kullanarak daha karmaşık işlemleri gerçekleştirebilirsiniz.

Konumu Okuduğunuz İçin Teşekkür Ederim.

a3b2jeo.png





 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.