Merhabalar. PDO ile veritabanında güncelleme işlemi yapıyorum. Fakat güncellenen veri aynıysa nasıl uyarı verdirebilirim?
Mesela veritabanındaki veri 1 diyelim. Ben tekrar 1 diye güncelleme yapmak istediğimde hata vermesini istiyorum. Aksi taktirde sitem buga giriyor.
PHP - PDO Hakkında Kısa Bir Soru
4
●102
- 19-09-2020, 22:53:53En basit haliyle bu şekilde, çok farklı şekillerde de yapılabilir.
<?php $yeniveri = $_POST["yeniveri"]; $row = $db->query("SELECT * FROM tablo_adi WHERE veri='$yeniveri'")->rowCount(); if($row > 0) { // HATA } else { // GUNCELLE } - 19-09-2020, 22:54:24Nasıl ya? Sizin sql de ya da kodlarda bir sıkıntı olmasın. Bende değerler aynı ise değişiklik yapmıyor otomatik olarak php 7.4 pdo son sürüm mariadb kurulu. PDO yerine basicdb sınıfını kullanın derim hem daha kolay.
Sorunuza gelecek olursak select işlemi yaparken where kullanın eğer girilen değerlerle eşitse saten geri döndürüyor değilse döndürmüyor if ile kontrol eder ona göre update işlemi yaparsınız. - 19-09-2020, 22:55:17PlatinYum adlı üyeden alıntı: mesajı görüntüle
öncelikle gelen verinin id sini alırsınız o idye göre veriyi bulursunuz $id = get('id'); $bul = $db->prepare("SELECT * FROM veriler WHERE id=:id"); $bul->execute([':id' => $id]); if($bul->rowCount()){ $row = $bul->fetch(PDO::FETCH_ASSOC); if($row['baslik'] == $_POST['baslik']){ //deneme amaçlı sütun yazılmıştır echo "formdan gelen veri ile veritabanındaki veri aynıdır"; }else{ $guncelle = $db->prepare("UPDATE veriler SET baslik=:b WHERE id=:id"); $guncelle->execute([':b'=>$baslik,':id'=>$id]); if($guncelle){ echo "başarılı"; } } }