CodeBlanks Logo Icon CodeBlanks

PDO nedir?

PHP kursu · İleri seviye · Ders 1/92

PDO'nun (PHP Data Objects) ne olduğunu ve neden kullanıldığını öğrenirsin.

PDO nedir?

PDO (PHP Data Objects), PHP'de veritabanına erişmek için kullanılan nesne yönelimli ve tekdüze bir arayüzdür. Aynı PHP kodu farklı veritabanlarıyla çalışır: MySQL, SQLite, PostgreSQL ve daha fazlası.

PDO sürücü (driver) tabanlıdır; her veritabanı için ayrı bir sürücü yüklenir ama çağrı arayüzü aynı kalır. mysqli yalnızca MySQL ile çalışırken PDO birçok veritabanını destekler.

PDO, hataları PDOException olarak fırlatır; böylece try/catch ile yakalanabilirler.

PDO sürücüleri ve DSN

PDO'da bağlantı, bir DSN (Data Source Name) dizesiyle kurulur. DSN'in başında sürücü adı yer alır: mysql:host=localhost;dbname=test, sqlite::memory: veya pgsql:host=localhost;dbname=test.

Sürücü adı değişince gerisi çoğu zaman aynı kalır; PHP tarafındaki kod değişmez. Yine de SQL lehçeleri farklı olabilir; PDO SQL'i çevirmez.

Bu derste örnekleri kısa tutmak için bellek içi SQLite (sqlite::memory:) kullanacağız; kurulum gerektirmez ve hızlıdır.

Uygulama Bellek içi SQLite'a bağlan

Bellek içi SQLite'a PDO ile bağlan: new PDO('sqlite::memory:'). Bağlantı nesnesinin sınıf adını get_class() ile yazdır.

Örnek çözümü göster
:memory:'); yaz. echo get_class($pdo) . "\n"; ile sınıf adını yazdır.
Örnek çözüm:
<?php
// PDO ile bellek içi SQLite'a bağlan ve sınıf adını yazdır

$pdo = new PDO('sqlite::memory:');
echo get_class($pdo) . "\n";

Kendini test et

  1. Hangi PHP eklentisi birden çok veritabanıyla (MySQL, SQLite, PostgreSQL) tekdüze arayüzle çalışır?

    • mysqli
    • PDO
    • mysql_fetch_array
    • preg_match
    Cevabı göster

    PDO — Doğru. PDO birçok veritabanını tekdüze arayüzle destekler; sürücüler aracılığıyla farklı veritabanlarına bağlanır.

  2. PDO sürücüsünü tamamla

    <?php
    // PDO desteklenen sürücüler
    $drivers = ['mysql', '____', 'pgsql'];
    foreach ($drivers as $driver) {
        echo $driver . "\n";
    }
    ?>
    Cevabı göster
    <?php
    // PDO desteklenen sürücüler
    $drivers = ['mysql', 'sqlite', 'pgsql'];
    foreach ($drivers as $driver) {
        echo $driver . "\n";
    }
    ?>
  3. PDO kavramlarını eşleştir

    DSN
    Bağlantı dizesi
    sürücü
    Veritabanı adı ön eki
    PDOException
    Hata istisnası
    mysqli
    Yalnız MySQL ile çalışır

İleri seviye bölümündeki tüm dersler