PHP PDO Veri Güncelleme

PDO ile veritabanı tablosundan veri güncelleme, değiştirme veya düzenleme 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 güncelleme işlemi PHP PDO Veri Silme işlemine benzer şekilde yapılır.

PDO ile veri güncelleme işlemi UPDATE SQL komutu ile yapılır.

UPDATE tablo_adi SET sutun1 = yeni_deger, sutun2 = yeni_deger WHERE sutun_adi = guncellenecek_deger 

NOT: Veri güncelleme işleminde WHERE kullanılmazsa tablodaki tüm veriler güncellenir.

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 güncelleme işlemi";

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

$baglanti = null;

?>

Veri güncelleme işlemi için exec, query veya prepare metodunu kullanabiliriz.

Dışarıdan değer almayan veri güncelleme 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("UPDATE kisiler SET kisi_adi = 'Yusuf Sefa', kisi_soyadi = 'SEZER' WHERE kisi_sira = 4");

    if ($sonuc > 0) {
        echo $sonuc . " kayıt güncellendi.";
    } else {
        echo "Herhangi bir kayıt güncellenemedi.";
    }

} 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("UPDATE kisiler SET kisi_adi = 'Yusuf Sefa', kisi_soyadi = 'SEZER' WHERE kisi_sira = 4");

    if ($sorgu->rowCount() > 0) {
        echo $sorgu->rowCount() . " kayıt güncellendi.";
    } else {
        echo "Herhangi bir kayıt güncellenemedi.";
    }

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

$baglanti = null;

?>

Veri güncelleme işlemi sonucunda PDOStatement($sorgu) sınıfındaki rowCount metodu güncellenen kayıt sayısını verir.

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

<?php

$sira = 1;
$adi = "Yusuf Sefa";
$soyadi = "SEZER";

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("UPDATE kisiler SET kisi_adi = ?, kisi_soyadi = ? WHERE kisi_sira = ?");
    $sorgu->bindParam(1, $adi, PDO::PARAM_STR);
    $sorgu->bindParam(2, $soyadi, PDO::PARAM_STR);
    $sorgu->bindParam(3, $sira, PDO::PARAM_INT);
    $sorgu->execute();

    if ($sorgu->rowCount() > 0) {
        echo $sorgu->rowCount() . " kayıt güncellendi.";
    } else {
        echo "Herhangi bir kayıt güncellenemedi.";
    }

} 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 güncellenen kayıt sayısını verir.

Güncellenen kayıt sayısını belirten rowCount metodu kullanılarak veri güncelleme işlemi kontrol edilebilir.

Veri güncelleme işlemindeki dikkat edilmesi gereken yer UPDATE SQL komutuna uygun WHERE koşulunun yazılmasıdır.

Herhangi bir WHERE koşulu belirtilmediğinde tablodaki veriler toplu olarak güncellenecektir.

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!