PHP PDO İle MySQL Veritabanı Bağlantısı ve SELECT,UPDATE,INSERT,DELETE İşlemleri
2 min read

PHP PDO İle MySQL Veritabanı Bağlantısı ve SELECT,UPDATE,INSERT,DELETE İşlemleri

PHP PDO İle MySQL Veritabanı Bağlantısı ve SELECT,UPDATE,INSERT,DELETE İşlemleri

PHP PDO ile MySQL veritabanı bağlantısı ve SELECTINSERTUPDATEDELETE temel işlemlerini rahatça nasıl yapacağımızı detaylıca ve örneklerle inceliyoruz.

PHP Data Objects yani PHP Veri Nesneleri (PDO), PHP ile MySQL veritabanına erişerek üzerinde işlemler yapabilmek için bir sürücü işlevi görür. Sıragelen mysqli veritabanı işlemlerine alışkın olanlar için PDO kullanımı da oldukça rahat ve alternatif bir yöntem olacaktır.

1. PDO MySQL Veritabanı Bağlantısı

Öncelile veritabanımıza bağlantımızı yapacak bilgileri oluşturalım. Bunun için aşağıdaki kod blogunu ekleyerek kullanıcı adı, şifre ve veritabanı adını kendinize göre düzenlemelisiniz:

try {
     $db = new PDO("mysql:host=localhost;dbname=xxdb_adixx;charset=utf8", "xxkullaniciadixx", "xxsifrexx");
} catch ( PDOException $e ){
     print $e->getMessage();
     die();
}

Burada doldurmanız gereken bilgiler şu şekildedir:

  • localhost: Veritabanı kurulumunuz aynı sunucudaysa localhost kalabilir. Farklı bir sunucudaysa sunucu ip adresini yazmanız gerekiyor.
  • xxdb_adixx: Veritabanı adı
  • xxkullaniciadixx: Veritabanınızın kullanıcı adı
  • xxsifrexx: Veritabanınızın şifresi

2. PDO İle SELECT İşlemi ve Örneği

Veritabanı tablonuzda yer alan verileri listelemek istediğinizde SELECT komutunu kullanırsınız. Aşağıdaki örnekte tablonuzda tüm kayıtları nasıl listeleyeceğinizi görebilirsiniz.

$query = $db->prepare("SELECT * FROM tabloadi");
$query->execute();

if ( $query->rowCount() ){
     foreach( $query as $row ){
          echo $row['sutunadi']."<br>";
     }
}
else{
    echo "Kayıt bulunamadı";
}

Sorgularınıza parametre ekleyerek SELECT komutunuzu çalıştırmak isterseniz ise bindParam() fonksiyonunu kullanabilirsiniz.

$query = $db->prepare("SELECT * FROM tabloadi WHERE id=:param_id AND ad=:param_ad");
$query->bindParam(':param_id',$id);
$query->bindParam(':param_ad',$ad);
$query->execute();

if ( $query->rowCount() ){
     foreach( $query as $row ){
          echo $row['sutunadi']."<br>";
     }
}
else{
    echo "Kayıt bulunamadı";
}

Parametrelerinizi tek tek göndermek yerine liste şeklinde de gönderebilirsiniz. Yukarıdaki aynı örnek üzerinde çalışırsak kodumuzu şu şekilde olacaktır.

$query = $db->prepare("SELECT * FROM tabloadi WHERE id=? AND ad=?");
$query->execute(array($id,$ad));

if ( $query->rowCount() ){
     foreach( $query as $row ){
          echo $row['sutunadi']."<br>";
     }
}
else{
    echo "Kayıt bulunamadı";
}

3. PDO İle INSERT İşlemi ve Örneği

Tablonuza yeni veriler eklemek isterseniz INSERT komutunu kullanabilirsiniz. PDO ile gönderdiğiniz veriler SQL Injection koruması ile veritabanına eklenmiş olacaktır. Ayrıca eklediğiniz verinin id sini lastInsertId() fonksiyonu ile alabilirsiniz.

$query = $db->prepare("INSERT INTO tabloadi SET ad=?, soyad=?");
$insert = $query->execute(array($ad,$soyad));

if ( $insert ){
    $sonid = $db->lastInsertId();
    echo $sonid." id li kayıt eklendi";
}
else{
    echo "Kayıt eklenemedi";
}

4. PDO İle UPDATE İşlemi ve Örneği

Tablonuzda güncelleme işlemini ise UPDATE komutu ile yapabilirsiniz. Kayıt güncelleme örneğini aşağıdaki komutta görebilirsiniz.

$query = $db->prepare("UPDATE tabloadi SET ad=:ad WHERE id=:id");
$query->bindParam(':ad',$ad);
$query->bindParam(':id',$id);
$update = $query->execute();

if ( $update ){
    echo "Kayıt güncellendi";
}
else{
    echo "Kayıt güncellenemedi";
}

5. PDO İle DELETE İşlemi ve Örneği

Son temel işlemimiz olan tablodan veri silme işlemini DELETE komutu ile halledebiliriz.

$query = $db->prepare("DELETE FROM tabloadi WHERE id=:id");
$query->bindParam(':id',$id);
$delete = $query->execute();

if ( $delete ){
    echo "Kayıt silindi";
}
else{
    echo "Kayıt silinemedi";
}

6. SONUÇ

PHP PDO sürücüsü ile veritabanı bağlantısı ve temel SQL komutlarının nasıl kullanılacağı hakkında kısa ve özet bir dersi tamamladık. Sormak istediğiniz konuları aşağıdaki yorum alanı ile iletebilirsiniz.