PHP PDO Veri Silme

PDO ile veritabanı tablosundan veri silme veya kayıt silme ile ilgili bilgiler yer almaktadır.

PDO ile veri çekme işlemi için öncelikle PHP PDO Veritabanı Bağlantısı ile bağlantı yapılıp uygun SQL komutunun yazılması yeterli olacaktır.

PDO ile veri silme işlemi DELETE SQL komutu ile yapılır.

DELETE FROM tablo_adi WHERE sutun_adi = silinecek_veri

NOT: Veri silme işleminde WHERE kullanılmazsa tablodaki tüm veriler silinir.

Veri silme işlemi için öncelikle gerekli veritabanı bağlantısını PDO ile yapalım.

<?php

try {

    $baglanti = new PDO("mysql:host=localhost;dbname=kisi", "root", "");
    $baglanti->exec("SET NAMES utf8");
    $baglanti->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

    echo "Veri silme işlemi";

} catch (PDOException $e) {
    die($e->getMessage());
}

$baglanti = null;

?>

Veri silme işlemi için exec, query veya prepare metodunu kullanabiliriz.

Dışarıdan değer almayan veri silme işlemi için exec veya query metodunu kullanabiliriz.

<?php

try {

    $baglanti = new PDO("mysql:host=localhost;dbname=kisi", "root", "");
    $baglanti->exec("SET NAMES utf8");
    $baglanti->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

    $sonuc = $baglanti->exec("DELETE FROM kisiler WHERE kisi_sira BETWEEN 29 AND 39");

    if ($sonuc > 0) {
        echo $sonuc . " kayıt silindi.";
    } else {
        echo "Herhangi bir kayıt silinemedi.";
    }

} catch (PDOException $e) {
    die($e->getMessage());
}

$baglanti = null;

?>

veya

<?php

try {

    $baglanti = new PDO("mysql:host=localhost;dbname=kisi", "root", "");
    $baglanti->exec("SET NAMES utf8");
    $baglanti->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

    $sorgu = $baglanti->query("DELETE FROM kisiler WHERE kisi_sira = 1");

    if ($sorgu->rowCount() > 0) {
        echo $sorgu->rowCount() . " kayıt silindi.";
    } else {
        echo "Herhangi bir kayıt silinemedi.";
    }

} catch (PDOException $e) {
    die($e->getMessage());
}

$baglanti = null;

?>

Veri silme işlemi sonucunda PDOStatement($sorgu) sınıfındaki rowCount metodu silinen kayıt sayısını verir.

Veri silme işlemine dışarıdan değer alarak koşullu veri silme gibi bir işlem yapılacaksa prepare metodunun kullanılması faydalı olacaktır.

<?php

$sira = 1;

try {

    $baglanti = new PDO("mysql:host=localhost;dbname=kisi", "root", "");
    $baglanti->exec("SET NAMES utf8");
    $baglanti->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

    $sorgu = $baglanti->prepare("DELETE FROM kisiler WHERE kisi_sira = ?");
    $sorgu->bindParam(1, $sira, PDO::PARAM_INT);
    $sorgu->execute();

    if ($sorgu->rowCount() > 0) {
        echo $sorgu->rowCount() . " kayıt silindi.";
    } else {
        echo "Herhangi bir kayıt silinemedi.";
    }

} catch (PDOException $e) {
    die($e->getMessage());
}

$baglanti = null;

?>

Ön hazırlı sorgunun çalıştırılması sonucunda PDOStatement($sorgu) sınıfındaki rowCount metodu silinen kayıt sayısını verir.

Silinen kayıt sayısını belirten rowCount metodu kullanılarak veri silme işlemi kontrol edilebilir.

Veri silme işlemindeki dikkat edilmesi gereken yer DELETE SQL komutuna uygun WHERE koşulunun yazılmasıdır.

Herhangi bir WHERE koşulu belirtilmediğinde tablodaki veriler toplu olarak silinecektir.

PHP PDO Derslerine buradan ulaşabilirsiniz…

Hayırlı günler dilerim.

Yusuf SEZER

Yusuf SEZER

Computer Engineer who interested about web technologies, algorithms, artificial intelligence and embedded systems; constantly exploring new technologies.


Bunlara'da bakmalısın!