• 11-05-2013, 17:49:23
    #1
    PDO Nedir ?
    PHP veri nesneleri (pdo) gelişmiş veritabanı yönetimi eklentisidir. PHP 5+ sürümünden sonra desteklenmektedir. Bu uygulama bir çok veritabanı destekliyor. Böylece veritabanı modelini degiştirmemiz gerektiginde php kodlarımızı sil baştan yazmamıza gerek kalmayacak.

    PDO'nun destekledigi veritabanı modelleri

    Alıntı
    Cubrid
    FreeTDS / Microsoft SQL Server / Sybase
    Firebird/Interbase 6
    IBM DB2
    IBM Informix Dynamic Server
    MySQL 3.x/4.x/5.x
    Oracle Call Interface
    ODBC v3 (IBM DB2, unixODBC and win32 ODBC)
    PostgreSQL
    SQLite 3 and SQLite 2
    Microsoft SQL Server / SQL Azure
    PHP geliştiricileri, artık php ve veritabanı programcılarına pdo nesnesini kullanmaları konusunda tavsiyelerde bulunuyor.

    PDO Baglantı Örnegi

    Genel bir pdo baglantı sınıfını tanımlarken bir DNS yani "Data Source Name" belirtilir. DSN ile hangi veritabanı sürücüsüne baglanacagımızı ifade ediyoruz. Diger paremetreler ise sırasıyla, kullanıcıadı ve veritabanı şifresi.

    $veritabani = new PDO('mysql:host=localhost;dbname=r10', "kullaniciadi", "sifre");
    Diger sürücülerin DSN ifadeleri için: buraya bakabilirsiniz.

    PDO ile veritabanı sorgulamaları

    Eğer yapacagımız sorgudan bir sonuç dönmesini beklemiyorsak exec fonksiyonu ile sorgularımızı göndeririz, eger bir çıktı almayı planlıyorsak query fonksiyonu ile sorgumuzu göndermemiz gerekmektedir.

    exec ile gönderilen sorgudan dönen sonuç, etkilenen satır sayısıdır.
    query ile gönderilen sorgudan dönen sonuç ise normal mysql_query() fonksiyonundan dönen sonuçla aynıdır.

    $SilinenSatirSayisi=$veritabani->exec("delete from users where Country='TR'");
    echo "Silinen kullanıcı sayısı $SilinenSatirSayisi";
    bu şekilde bir sonuç dönmesini beklemedigimiz bir sorguda exec fonksiyonu kullandık.

    Şimdi ise bir sonuç dönmesini bekledigimiz bir sql sorgusu gönderelim,

    foreac($veritabani->query("select ID,UserName from users") as $return){
    echo "$return[UserName]";
    }
    Bu sorgu ilede users tablosu içerisindeki verilerin hepsini istedik ve sıraladık.

    PDO'nun genel kullanım şekli böyledir...
    Sonraki yazılarımızda daha detaylara girecegiz

    Kaynak: PDO Hakkında Temel Bilgiler
  • 11-05-2013, 21:19:28
    #2
    Üyeliği durduruldu
    eyw. PDO hic kullanmadim, fakat yapisi fena degil.
  • 11-05-2013, 23:21:42
    #3
    Remzi0068 adlı üyeden alıntı: mesajı görüntüle
    eyw. PDO hic kullanmadim, fakat yapisi fena degil.
    Bende pek kullanan görmedim, fakat php geliştiricileri bunu kullanmamız öneriyor buda gösteriyorki gelecek sürümlerde mysql_query fonksiyonunun ipini çekecekler
  • 12-05-2013, 00:13:31
    #4
    PDO'nun klasik mysql sorgularından farkı nedir acaba ?
  • 12-05-2013, 00:22:26
    #5
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Teşekkürler güzel yazı olmuş.
  • 12-05-2013, 00:23:20
    #6
    sedat adlı üyeden alıntı: mesajı görüntüle
    Bende pek kullanan görmedim, fakat php geliştiricileri bunu kullanmamız öneriyor buda gösteriyorki gelecek sürümlerde mysql_query fonksiyonunun ipini çekecekler
    Hala kullanmaya başlamamış olmak bile hatadır.
  • 12-05-2013, 00:41:18
    #7
    NepenTheS adlı üyeden alıntı: mesajı görüntüle
    PDO'nun klasik mysql sorgularından farkı nedir acaba ?
    Daha fazla veritabanı modeli desteklemektedir.
    Yani sen bugün mysql veritabanı kullanarak kodlamaya başladıgın bir projede ileride mssql kullanmak istersen yazdıgın kodlardaki mysql_query fonksiyonlarını tutup mssql_query ile degiştirmen gerekecek vs.vs.. ama PDO da tek bir sorgu mantıgı var $db->query();

    Daha büyük sonuçları üzerinde taşıyarak daha hızlı işlem görüyor,

    Örnek olarak sana şunları gösterebilirm,

    $start = microtime(true);
    for($i=0; $i<10000; ++$i) {
    
        try {
            $db = new PDO($dsn, $user, $password);
        } catch (PDOException $e) {
            echo 'Connection failed: ' . $e->getMessage()."\n";
        }
        $db = null;
    }
    
    $pdotime = microtime(true) - $start;
    echo "PDO time: ".$pdotime."\n";
    
    $start = microtime(true);
    for($i=0; $i<10000; ++$i) {
        $db = mysql_connect($host, $user, $password);
        if(!$db) {
        	echo "Connection failed\n";
        }
        if(!mysql_select_db($schema, $db)) {
        	echo "Error: ".mysql_error()."\n";
        }
        mysql_close($db);
    }
    
    $rawtime = microtime(true) - $start;
    echo "Raw time: ".$rawtime."\n";
    bu işlemin çıktısı;

    PDO time: 0.77983117103577
    Raw time: 0.8918719291687
    
    PDO time: 0.7866849899292
    Raw time: 0.8954758644104
    
    PDO time: 0.77420806884766
    Raw time: 0.90708494186401
    
    PDO time: 0.77484893798828
    Raw time: 0.90069103240967
    buradaki çok küçük süreler olarak gözüksede büyük projelerde gözle görülür bir sonuç farklı ortaya çıkacaktır.
  • 08-06-2013, 04:32:47
    #8
    Yeni yazıcağım projede/script'te PDO kullanıcağım, Teşekkürler.
  • 08-06-2013, 09:38:36
    #9
    Güzel Yazı Olmuş Teşekkürler.