• 04-12-2010, 23:13:18
    #1
    Üyeliği durduruldu
    Başlıktan anlaşılacağı gibi konumuz PDO yani PHP Data Object , kısaca nedir manuel sayfasından bir özetlemek gerekirse :
    PHP Veri Nesneleri (PDO) eklentisi, PHP’deki veritabanlarına erişmek için hafif ve tutarlı bir arayüz tanımlar. PDO arayüzü tanımı bulunan her veritabanı sürücüsü, veritabanına özgü özellikleri sıradan eklenti işlevleri olarak ifade edebilir

    Başlangıç için bu kadar bilgi yeterli değilse buradan manuel sayfasındaki dokümanlara göz atabilirsiniz.

    PHP 5 + sürümleri ile uyumluluk göstermektedir, desteklediği veritabanları şunlardır


    Local serverinizde phpinfo() fonksiyonumuzu çalıştıralım ve PDO eklentisinin aktif olup olmadığını görelim.
    pdo_mysql kelimesini arama yapın uygun sonuç varsa işlem yapmamıza gerek yok , eğer yoksa php.ini dosyamızda birkaç değişiklik yapacağız.

    Mysql için eklenti kodumuz

    [PHP_PDO]
    extension=php_pdo.dll
    [PHP_MYSQL]
    extension=php_mysql.dll

    desteklediği diğer veritabanları için php.ini dosyamıza eklenecek kodlarımız

    extension=php_pdo.dll
    extension=php_pdo_firebird.dll
    extension=php_pdo_informix.dll
    extension=php_pdo_mssql.dll
    extension=php_pdo_mysql.dll
    extension=php_pdo_oci.dll
    extension=php_pdo_oci8.dll
    extension=php_pdo_odbc.dll
    extension=php_pdo_pgsql.dll
    extension=php_pdo_sqlite.dll
    Hangi driverlerimiz aktif onu görelim
    PDO::getAvailableDrivers()
    statik metodumuz ile kontrol edelim

    <?php
    foreach(PDO::getAvailableDrivers() as $driver)
        {
        echo $driver.'<br />';
        }
    ?>

    database driverleri default konumdaysa muhtemelen sonuç şu şekil olmalı
    • mysql
    • sqlite
    • sqlite2


    Örnek Mysql veritabanımıza bağlanalım

    <?php
        try {
                $db = new PDO("mysql:dbname=test;host=localhost", "user", "pass" );
                echo "PDO connection!";
            }
        catch(PDOException $e)
            {
                echo $e->getMessage();
            }
    ?>
    Herhangi problem yoksa PDO connection! mesajını göreceksiniz.

    Örnek PostgreSQL veritabanımıza bağlanalım

    <?php
        try {
                $db = new PDO("pgsql:dbname=test;host=localhost", "user", "pass" );
                echo "PDO connection!";
            }
        catch(PDOException $e)
            {
                echo $e->getMessage();
            }
    ?>
    Örnek SQLite veritabanımıza bağlanalım

    <?php
            try {
                $db = new PDO("sqlite:/path/to/database.sdb");
                }
            catch(PDOException $e)
             {
                echo $e->getMessage();
             }
    ?>
    Bağlantı kodumuzda try ve catch bloğumuz içerisine yazdığımız bağlantı kodumuz hata olasılığında catch kısmı devreye girecektir.
    Çalışmamızı try kod bloğunun içinde yapmamız daha temiz olacaktır.

    Tüm veritabanlarını listeleyelim

    foreach ($db->query('SHOW DATABASES') as $row) {
           print_r($row);
    }
    Insert

    $db->exec("INSERT INTO cms(name, languages) VALUES ('wordpress', 'PHP')");
    Select

    $sql = "SELECT * FROM cms";
        foreach ($db->query($sql) as $row)
            {
            echo $row['name'].' : '.$row['languages'].'<br />';
            }
    Update

    $db->exec("UPDATE cms SET name='habari' WHERE languages='PHP'");
    Daha detaylı bilgi isterseniz php.net manuel veya buradan ulaşabilirsiniz.


    http://www.oguzkoc.com.tr/php-data-object-pdo/
  • 04-12-2010, 23:42:30
    #2
    daha öncedende benim yazdıgım ufak bir yazı vardı. Başka agızndan dinlemek isteyenler için http://www.tasarimrehberi.net/pdo-ne...ullanilir.html
  • 05-12-2010, 07:07:48
    #3
    elinize sağlık oğuz hocam
  • 05-12-2010, 12:55:47
    #4
    Güzel bir yazı olmuş teşekkürler Oğuz.