lostyazilim
tr.link

Pdo etkilenen satır sayısı nasıl alabilirim ?

14 Mesajlar 4.096 Okunma
acebozum
tr.link

ismail03 ismail03 WM Aracı Kullanıcı
  • Üyelik 28.11.2013
  • Yaş/Cinsiyet 30 / E
  • Meslek Ameliyathane Hemşiresi
  • Konum Afyon
  • Ad Soyad I** Ç**
  • Mesajlar 2633
  • Beğeniler 344 / 487
  • Ticaret 12, (%100)

try{
$sql="update tablo set dkod=:kk where sira=:sal";
$gun=$this->db()->prepare($sql);
$gun->execute(array("kk"=>"ssdesh12","sal"=>1));
echo "Başarılı";
}
catch(PDOEXception $e)
{
echo "Veritabanı hatası".$e->getMessage();
}

Bu işlemde eğer veri yoksa işlem sonucu yine başarılı dönmekte bu işlemi mysql de mysql_affected_rows() fonksiyonu eşdeğeri var mıdır?
exec() fonksiyonu öneriliyor ancak kullanımı anlamadım :)
Ne önerirsiniz
 

 

elektronikssl
webimgo

Decimas Decimas WM Aracı Kullanıcı
  • Üyelik 19.04.2015
  • Yaş/Cinsiyet 26 / E
  • Meslek Developer
  • Konum İstanbul Avrupa
  • Ad Soyad E** E**
  • Mesajlar 820
  • Beğeniler 1 / 302
  • Ticaret 1, (%100)
rowCount()


$rows = $gun->rowCount();


Şeklinde alabilirsin.
 

 

no time for caution

HAYIRSEVER HAYIRSEVER Üyeliği Durdurulmuş Banlı Kullanıcı
  • Üyelik 21.05.2018
  • Yaş/Cinsiyet 34 / E
  • Meslek Back-End
  • Konum İzmir
  • Ad Soyad Y** A**
  • Mesajlar 216
  • Beğeniler 46 / 48
  • Ticaret 7, (%86)
Direk

try{
$sql="update tablo set dkod=:kk where sira=:sal";
$gun=$this->db()->prepare($sql);
$gun->execute(array("kk"=>"ssdesh12","sal"=>1));
if($gun)
{echo "Başarılı";}
else{echo "Hata";}
}
catch(PDOEXception $e)
{
echo "Veritabanı hatası".$e->getMessage();
}


şeklinde kullanabilirsin.
 

 

ismail03 ismail03 WM Aracı Kullanıcı
  • Üyelik 28.11.2013
  • Yaş/Cinsiyet 30 / E
  • Meslek Ameliyathane Hemşiresi
  • Konum Afyon
  • Ad Soyad I** Ç**
  • Mesajlar 2633
  • Beğeniler 344 / 487
  • Ticaret 12, (%100)

Decimas adlı üyeden alıntı

rowCount()


$rows = $gun->rowCount();


Şeklinde alabilirsin.

bunu denemiştim etkilenen satırı döndürmedi yanlış hatırlamıyorsam
 

 

wmaraci
wmaraci

ismail03 ismail03 WM Aracı Kullanıcı
  • Üyelik 28.11.2013
  • Yaş/Cinsiyet 30 / E
  • Meslek Ameliyathane Hemşiresi
  • Konum Afyon
  • Ad Soyad I** Ç**
  • Mesajlar 2633
  • Beğeniler 344 / 487
  • Ticaret 12, (%100)

HAYIRSEVER adlı üyeden alıntı

Direk

try{
$sql="update tablo set dkod=:kk where sira=:sal";
$gun=$this->db()->prepare($sql);
$gun->execute(array("kk"=>"ssdesh12","sal"=>1));
if($gun)
{echo "Başarılı";}
else{echo "Hata";}
}
catch(PDOEXception $e)
{
echo "Veritabanı hatası".$e->getMessage();
}


şeklinde kullanabilirsin.

Hocam Sil/güncelle/ekle işlemlerinde işlem boş döndürsede başarılı dönmekte.
 

 

Decimas Decimas WM Aracı Kullanıcı
  • Üyelik 19.04.2015
  • Yaş/Cinsiyet 26 / E
  • Meslek Developer
  • Konum İstanbul Avrupa
  • Ad Soyad E** E**
  • Mesajlar 820
  • Beğeniler 1 / 302
  • Ticaret 1, (%100)

ismail03 adlı üyeden alıntı

bunu denemiştim etkilenen satırı döndürmedi yanlış hatırlamıyorsam


Çalışır, bir yerde hata yapmışsındır.

var_dump($gun); dene, ne dönüyor?

eğer false değilse etkilenen satırlar var demektir.
 

 

no time for caution

4everturk 4everturk WM Aracı Kullanıcı
  • Üyelik 31.10.2017
  • Yaş/Cinsiyet 30 / E
  • Meslek Amatör Yazılımcı
  • Konum Adana
  • Ad Soyad C** A**
  • Mesajlar 173
  • Beğeniler 41 / 28
  • Ticaret 0, (%0)

$update=$db->prepare('update tablo set dkod=:kk where sira=: sal'); // : sal arasındaki boşluğu sil lütfen.
$ok=$update->execute(array("kk" => "ssdesh12", "sal" => "1"));
if($ok){
echo "Başarılı";
}else{
echo "HATA";
}


Eğer sira = 1 yoksa işlem yaptırmayacaksan şöyle bir kod uygulamalısın

$query = $db->query("SELECT * FROM tablo WHERE sira = '1'")->fetch(PDO::FETCH_ASSOC);
if(query){
$update=$db->prepare('update tablo set dkod=:kk where sira=: sal'); // : sal arasındaki boşluğu sil lütfen.
$ok=$update->execute(array("kk" => "ssdesh12", "sal" => "1"));
if($ok){
echo "Başarılı";
}else{
echo "HATA";
}
}else{
echo "sıra yok..";
}

Bu şekilde dener misin hocam.
 

 

4everturk 4everturk WM Aracı Kullanıcı
  • Üyelik 31.10.2017
  • Yaş/Cinsiyet 30 / E
  • Meslek Amatör Yazılımcı
  • Konum Adana
  • Ad Soyad C** A**
  • Mesajlar 173
  • Beğeniler 41 / 28
  • Ticaret 0, (%0)

ismail03 adlı üyeden alıntı

Hocam Sil/güncelle/ekle işlemlerinde işlem boş döndürsede başarılı dönmekte.


ismail03 adlı üyeden alıntı

bunu denemiştim etkilenen satırı döndürmedi yanlış hatırlamıyorsam


Saydırmak için bu kodu kullanabilirsin. Sıra = 1 olan kaç satır var sana sayısını verir.

$sorgu = $db->prepare("SELECT COUNT(*) FROM tablo where sira='1'");
$sorgu->execute();
$say = $sorgu->fetchColumn();
echo $say;
 

 

ismail03 ismail03 WM Aracı Kullanıcı
  • Üyelik 28.11.2013
  • Yaş/Cinsiyet 30 / E
  • Meslek Ameliyathane Hemşiresi
  • Konum Afyon
  • Ad Soyad I** Ç**
  • Mesajlar 2633
  • Beğeniler 344 / 487
  • Ticaret 12, (%100)

4everturk adlı üyeden alıntı

Saydırmak için bu kodu kullanabilirsin. Sıra = 1 olan kaç satır var sana sayısını verir.

$sorgu = $db->prepare("SELECT COUNT(*) FROM tablo where sira='1'");
$sorgu->execute();
$say = $sorgu->fetchColumn();
echo $say;


amacım saydırmak değil hocam bunu select de rowCount() fonksiyonu ile yapabiliyoruz benm amacım güncelle sil ekle olayında etkilenen satırı alma
 

 

4everturk 4everturk WM Aracı Kullanıcı
  • Üyelik 31.10.2017
  • Yaş/Cinsiyet 30 / E
  • Meslek Amatör Yazılımcı
  • Konum Adana
  • Ad Soyad C** A**
  • Mesajlar 173
  • Beğeniler 41 / 28
  • Ticaret 0, (%0)
Hocam sen işlem sonucu yanlış dönüyor diye bir kod atmıştın ona karşılık 3 yorum yukarı da bir kod attım. Yani etkilenen satır zaten sıra = 1 demişsen fonksiyonunda yada sıra = $_POST['sıra'] demişsen hangi sıra numarası ise o etkilenecek zaten.

Yanlış anladıysam konuyu daha açıklayıcı bir şekilde yazarsan yardımcı olmaya çalışalım.
 

 

Site Ayarları
  • Tema Seçeneği
  • Site Sesleri
  • Bildirimler
  • Özel Mesaj Al