Yükleniyor

PDO php ile veritabanı işlemlerini yapmak oldukça basittir. PDO php ile mysql, mssql vb. bir çok veritabanıyla işlemlerini yapabilirsiniz.

Öncelikle 5 işlemin PDO php kodlarını basit bir şekilde sizler için hazırladık. Bunlar;

  • PDO php ile veri listeleme
  • PDO php ile veri ekleme
  • PDO php ile veri güncelleme
  • PDO php ile detay sayfası
  • PDO php ile veri silme

PDO dizi mantığında çalışır. Sql sorgusunu kendi süzgecinden geçirir ve böylelikle genel sql açıklarını engeller. Sorgularınızı dizi olarak yazarsınız, önce çalıştırır daha sonra ne işlem yapmak istiyorsanız(listeleme, tekli veri çekme gibi) hazır hale getirmesi için başka bir değişkene atarsınız.


PDO php ile mysql veritabanına bağlanma kodu;
<?php
try {
  $db = new PDO("mysql:host=localhost;dbname=VERITABANI_ADI", "VERITABANI_KULLANICI_ADI", "VERITABANI_KULLANICI_SIFRESI", array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8", PDO::MYSQL_ATTR_INIT_COMMAND => "SET CHARACTER SET utf8", array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION)));
} catch (PDOException $e) {
  print $e->getMessage(); // EĞER BAĞLANAMAZSA BAĞLANAMAMASINA SEBEB OLAN HATAYI DÖNER
}
//bağlantı cümlesini $db değişkenine attık.
//sql sorgularında $db değişkenini kullanacağız.
/*
array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8", PDO::MYSQL_ATTR_INIT_COMMAND => "SET CHARACTER SET utf8", array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION))
  ## bu alan opsioneldir. Veritabanına bağlanma dil ayarlarınızı ve tablolara bağlanacak dil ayarlarımızı belirttik. Ayrıca hata durumunda hata moduna düşmesini belirttik.
*/
?>
Örneklerin Tamamını İndir (Formlu & HTML Yapıda)

PDO php ile veri listeleme

<?php
try {
    $db = new PDO("mysql:host=localhost;dbname=pdo_php", "root", "", array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8", PDO::MYSQL_ATTR_INIT_COMMAND => "SET CHARACTER SET utf8", array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION)));
} catch (PDOException $e) {
    print $e->getMessage(); // EĞER BAĞLANAMAZSA BAĞLANAMAMASINA SEBEB OLAN HATAYI DÖNER
}
//bağlantı cümlesini $db değişkenine attık.
//sql sorgularında $db değişkenini kullanacağız.

$uyeler = $db->query("SELECT * FROM uyeler", PDO::FETCH_ASSOC);
//PDO::FETCH_ASSOC komutu tümünü dön demektir.
//query listeleme ve tekli veri çekimlerinde kullanılır. PDO buradan anlıyor hangi tip sorgu çalıştıracağını
//$db değişkenine bağlantı cümlemizi atadığımız için yazdık.
// ### $db değişkenindeki bağlantı cümlesine git oradan query bul ve bu sorguyu query altında çalıştır.
// ### dizi olarak düşünmeniz gerekiyor => $db["query"][$sorgunuz] gibi

if ($uyeler->rowCount()) {
    //rowCount() komutu eğer bir pdo da değişkende satır sayısı varsa demektir.
    //Çünkü $uyeler değişkeni artık bir dizi
    // ## var_dump($uyeler); => bu komutu çalıştırırsanız daha iyi anlayacaksınız.

    foreach ($uyeler as $uye) {
        //artık satır sayımız olduğuna göre foreach ile verileri yazdırabiliriz.
        //dizi döndüğü için foreach, for gibi döngüler kullanılabilir.
        //ama en mantıklısı foreach'tir. Eleman sayısını saymamıza gerek kalmadan otomatik eleman sayısı kadar döner.
        // ## var_dump($uye); => bu komutu çalıştırırsanız daha iyi anlayacaksınız.

        echo "ID => " . $uye["id"] . "<br />";
        echo "ADI => " . $uye["uyeAdi"] . "<br />";
        echo "SOYADI => " . $uye["uyeSoyadi"] . "<br />";
        echo "KULLANICI ADI => " . $uye["kullaniciAdi"] . "<br />";
        echo "ŞİFRE => " . $uye["sifre"] . "<br />";
        echo "KAYIT TARİHİ => " . $uye["kayitTarihi"] . "<br />";
        echo "<hr /><br />";

        /*
        aslında $uye de bir dizi bize iç içe dizi dönüyor. Bu yüzden dizi yazdırır gibi yazdırıyoruz.
        Key değerlerine; veritabanındaki sutun adını otomatik kendisi verir. bu yüzden ona göre çağırıyoruz.
        ## var_dump($uye); => bu komutu çalıştırırsanız daha iyi anlayacaksınız.
        */
    }
} //satır kontrol if bitişi
else
    echo 'KAYIT BULUNAMADI.';
//eğer satır sayısı yoksa çalışacaktır.
?>

PDO php ile veri ekleme

Eğer php post ve html formları üzerine bilginiz yoksa önce PHP Post ve Get bölümümüze bakabilirsiniz.

<?php
try {
    $db = new PDO("mysql:host=localhost;dbname=pdo_php", "root", "", array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8", PDO::MYSQL_ATTR_INIT_COMMAND => "SET CHARACTER SET utf8", array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION)));
} catch (PDOException $e) {
    print $e->getMessage(); // EĞER BAĞLANAMAZSA BAĞLANAMAMASINA SEBEB OLAN HATAYI DÖNER
}
//bağlantı cümlesini $db değişkenine attık.
//sql sorgularında $db değişkenini kullanacağız.
/*
  array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8", PDO::MYSQL_ATTR_INIT_COMMAND => "SET CHARACTER SET utf8", array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION))
  ## bu alan opsioneldir. Veritabanına bağlanma dil ayarlarınızı ve tablolara bağlanacak dil ayarlarımızı belirttik. Ayrıca hata durumunda hata moduna düşmesini belirttik.
  */

    $hazirla = $db->prepare("INSERT INTO uyeler SET id = ?, uyeAdi = ?, uyeSoyadi = ?, kullaniciAdi = ?, sifre = ?, kayitTarihi = ?");
    $calisti = $hazirla->execute(array(null, "PHP", "MUTFAĞI", "phpMutfagi", "123456", date("Y-m-d")));
    /*
    //prepare ekleme, güncelleme ve silme işlemlerinde kullanılır. PDO buradan anlıyor hangi tip sorgu çalıştıracağını
    //$db değişkenine bağlantı cümlemizi atadığımız için yazdık.
    //ilk sorguda sorgumuzu hazırladık.
    //ikincide execute komutu ile yukarıda yazdığımız sırayla sütunlara denk gelmesi gereken değişkenleri yazdık ve çalıştır dedik.
    //id kısmını null verdik çünkü tablo da otomatik artması gerektiğini ve benzersiz olması gerektiğini ayarladık.
    // ### dizi olarak düşünmeniz gerekiyor => $db["prepare"]["sql_cumlesi"], $db["hazirlanan_sql_cumlesi"]["execute"]["sorgunuz"]  gibi
    */

    //EĞER KAYIT İŞLEMİ GERÇEKLEŞTİYSE.
    if($calisti){
        //aşağıdaki kodumuz veri tabanına en son eklenen id bilgisini verir.
        $id = $db->lastInsertId();
        echo $id;
    }
    else echo "KAYIT BAŞARISIZ OLDU.";
?>

PDO php ile veri güncelleme

Eğer php post ve html formları üzerine bilginiz yoksa önce PHP Post ve Get bölümümüze bakabilirsiniz.
<?php
try {
    $db = new PDO("mysql:host=localhost;dbname=pdo_php", "root", "", array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8", PDO::MYSQL_ATTR_INIT_COMMAND => "SET CHARACTER SET utf8", array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION)));
} catch (PDOException $e) {
    print $e->getMessage(); // EĞER BAĞLANAMAZSA BAĞLANAMAMASINA SEBEB OLAN HATAYI DÖNER
}
//bağlantı cümlesini $db değişkenine attık.
//sql sorgularında $db değişkenini kullanacağız.
/*
  array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8", PDO::MYSQL_ATTR_INIT_COMMAND => "SET CHARACTER SET utf8", array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION))
  ## bu alan opsioneldir. Veritabanına bağlanma dil ayarlarınızı ve tablolara bağlanacak dil ayarlarımızı belirttik. Ayrıca hata durumunda hata moduna düşmesini belirttik.
  */

    $hazirla = $db->prepare("UPDATE uyeler SET uyeAdi = ?, uyeSoyadi = ?, kullaniciAdi = ?, sifre = ? WHERE id = ?");
    $calisti = $hazirla->execute(array("Uye Yeni Adı", "Uye Yeni Soyadı", "YeniKullanıcıAdı", "yeniSifre", 1)); 
    /*
    //prepare ekleme, güncelleme ve silme işlemlerinde kullanılır. PDO buradan anlıyor hangi tip sorgu çalıştıracağını
    //$db değişkenine bağlantı cümlemizi atadığımız için yazdık.
    //ilk sorguda sorgumuzu hazırladık.
    //ikincide execute komutu ile yukarıda yazdığımız sırayla sütunlara denk gelmesi gereken değişkenleri yazdık ve çalıştır dedik.
    // ### dizi olarak düşünmeniz gerekiyor => $db["prepare"]["sql_cumlesi"], $db["hazirlanan_sql_cumlesi"]["execute"]["sorgunuz"]  gibi
    */

    //EĞER GÜNCELLEME İŞLEMİ GERÇEKLEŞTİYSE.
    if($calisti) echo 'IDSI 1 OLAN KULLANICININ BİLGİLERİ BAŞARILI BİR ŞEKİLDE GÜNCELLENDİ.';
    else echo "GÜNCELLEME BAŞARISIZ OLDU.";
?>

PDO php ile detay sayfası

Eğer php get üzerine bilginiz yoksa önce PHP Post ve Get bölümümüze bakabilirsiniz.
<?php
try {
    $db = new PDO("mysql:host=localhost;dbname=pdo_php", "root", "", array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8", PDO::MYSQL_ATTR_INIT_COMMAND => "SET CHARACTER SET utf8", array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION)));
} catch (PDOException $e) {
    print $e->getMessage(); // EĞER BAĞLANAMAZSA BAĞLANAMAMASINA SEBEB OLAN HATAYI DÖNER
}
//bağlantı cümlesini $db değişkenine attık.
//sql sorgularında $db değişkenini kullanacağız.


    $uyem = $db->prepare("SELECT * FROM uyeler WHERE id = :id");
    $uyem->execute(array("id" => 1));
    $uye  = $uyem -> fetch();
    /*
    //prepare ekleme, güncelleme ve silme işlemlerinde olduğu gibi tekli veri çekimlerindede kullanılır.
    //$db değişkenine bağlantı cümlemizi atadığımız için yazdık.
    //ilk sorguda sorgumuzu hazırladık.
    //ikincide execute komutu ile yukarıda yazdığımız WHERE koşulunda :id değişkeninin karşılığını yazdık ve çalıştırdık.
    ------------------------
    BU ALAN ÇOĞALTILABİLİR;
    $uyem = $db->prepare("SELECT * FROM uyeler WHERE kullaniciAdi = :gelenKullaniciAdi and sifre = :gelenSifre");
    $uyem->execute(array("gelenKullaniciAdi" => "PhpMutfagi", "sifre" => 134, ));
    $uye  = $uyem -> fetch();
    ## EĞER STRİNG BİR DEĞER SE TIRNAK(") İŞARETİ İÇİNE ALIRIZ.

    ********************************

    $uyem = $db->prepare("SELECT * FROM uyeler WHERE kullaniciAdi = :gelenKullaniciAdi and sifre = :gelenSifre");
    $uyem->execute(array("gelenKullaniciAdi" => $degisken, "sifre" => 134, ));
    $uye  = $uyem -> fetch();
    ## DEĞİŞKEN OLARAK GİRDİĞİNİZDE TIRNAK(") İÇİNE ALMANIZA GEREK YOKTUR.
    ---------------------

    //üçüncü fetch() komutu ile yapılan sql sorgusunu yazılabilir hale getirdik ve dizi olarak $uye değişkenine attık.
    */

    //EĞER GÜNCELLEME İŞLEMİ GERÇEKLEŞTİYSE.
    if($uyem->rowCount()){
        //$uyem değişkeninin rowCount() satır sayısını verir
        
        echo "ID => " . $uye["id"] . "<br />";
        echo "ADI => " . $uye["uyeAdi"] . "<br />";
        echo "SOYADI => " . $uye["uyeSoyadi"] . "<br />";
        echo "KULLANICI ADI => " . $uye["kullaniciAdi"] . "<br />";
        echo "ŞİFRE => " . $uye["sifre"] . "<br />";
        echo "KAYIT TARİHİ => " . $uye["kayitTarihi"];

        /*
        $uye değişkenine bir dizi olarak atadığı için dizi şeklinde yazdırıyoruz.
        Key değerlerine; veritabanındaki sutun adını otomatik kendisi verir. bu yüzden ona göre çağırıyoruz.
        ## var_dump($uye); => bu komutu çalıştırırsanız daha iyi anlayacaksınız.
        */
    }
    else echo "ÜYE BULUNAMADI.";
?>

PDO php ile veri silme

<?php
try {
    $db = new PDO("mysql:host=localhost;dbname=pdo_php", "root", "", array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8", PDO::MYSQL_ATTR_INIT_COMMAND => "SET CHARACTER SET utf8", array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION)));
} catch (PDOException $e) {
    print $e->getMessage(); // EĞER BAĞLANAMAZSA BAĞLANAMAMASINA SEBEB OLAN HATAYI DÖNER
}
//bağlantı cümlesini $db değişkenine attık.
//sql sorgularında $db değişkenini kullanacağız.


    $hazirla = $db->prepare("DELETE FROM uyeler WHERE id = :gelenId");
    $calistir = $hazirla->execute(array("gelenId" => 1));
    /*
    //prepare ekleme, güncelleme ve silme işlemlerinde kullanılır.
    //$db değişkenine bağlantı cümlemizi atadığımız için yazdık.
    //ilk sorguda sorgumuzu hazırladık.
    //ikincide execute komutu ile yukarıda yazdığımız WHERE koşulunda :id değişkeninin karşılığını yazdık ve sorguyu çalıştırdık.
    */

    //EĞER SİLME İŞLEMİ GERÇEKLEŞTİYSE.
    if($calistir) echo "SİLME İŞLEMİ BAŞARILI.";
    else echo "SİLME İŞLEMİ GERÇEKLEŞMEDİ !!";
?>
Örneğin Tamamını İndir (Formlu & HTML Yapıda)