• 18-03-2021, 15:05:36
    #1
    Merhaba arkadaşlar Tayfun Beyin PHP Transaction kullanımı videosunda ki örneği yaptım fakat bende işlemiyor update1 den bakiye düşüyor fakat update2 de hata verdirdiğim halde işlem başarılı diyor update2 id 2 ama ben 21 yapıyorum rolback olsun diye fakat olmuyor yöntem artık kullanılmıyor mu? 7.4 de php sürüm..

    <?php
    
    $db = new PDO("mysql:host=localhost;dbname=arge;charset=utf8", "root", "root");
    
    $db->beginTransaction();
    
    $query = $db->query("SELECT * from bakiye")->fetchAll(PDO::FETCH_ASSOC);
    echo "<pre>";
    print_r($query);
    echo "</pre>";
    
    echo "<hr>";
    
    $para = 500;
    
    
    $sor1=$db->prepare("UPDATE bakiye SET kredi = - :tutar WHERE ID=:ID");
    $sonuc1=$sor1->execute(Array(':tutar'=>$para,'ID'=>1));
    
    $sor2=$db->prepare("UPDATE bakiye SET kredi = + :tutar WHERE ID=:ID");
    $sonuc2=$sor2->execute(Array(':tutar'=>$para,'ID'=>11));
    
    
    if ($sonuc1 && $sonuc2) {
    
    $db->commit();
    
        echo "bakiye aktarıldı";
    
    } else {
    
    $db->rollBack();
    
        echo "bakiye aktarılamadı";
    
    }
    
    
    ?>
  • 18-03-2021, 16:33:02
    #2
    ID'yi farklı değer vermen hata olarak sayılmıyor. sadece o ID için update başarılı şekilde çalışmış olur. ID karşılığı olmasa bile.
  • 18-03-2021, 20:12:17
    #3
    Sonuçta yazdığın kod execute ediliyor id farklı vermen işe yaramaz o id aynı mı yada o id deki isim soyisim hash..vs aynı mı diye kontrol ettirmen lazım
    • HakanKorkz
    HakanKorkz bunu beğendi.
    1 kişi bunu beğendi.
  • 19-03-2021, 15:39:42
    #4
    Evet haklısınız arkadaşlar o zaman aklıma şu soru takılıyor belirtiğim kişinin youtube videosunda aynı işlem çalışıyor sorunsuz peki neden?..
  • 19-03-2021, 15:47:24
    #5
    senin kodun da çalışıyor muhtemelen. sadece ID değerini farklı girmen rollbacke neden olmaz. sorguda hata meydana gelmiyor.
  • 19-03-2021, 15:48:47
    #6
    per adlı üyeden alıntı: mesajı görüntüle
    senin kodun da çalışıyor muhtemelen. sadece ID değerini farklı girmen rollbacke neden olmaz. sorguda hata meydana gelmiyor.
    çok çok teşekkür ederim ilginiz için dediğiniz yöntem deneyeceğim..
  • 19-03-2021, 15:55:45
    #7
    eğer ki diğer update'te etkilenen satır yoksa yani yanlış bir id girilmişse işlem yapılmasın istiyorsan, 2.update sonrasıda etkilenen satırları alıp kontrol edebilirsin. mysql_affected_rows, mysqlİ:affected_rows ya da pdo rowCount fonksiyonları ile update işleminden etkilenen satır sayısına ulaşabilirsin. sonuc1 && etkilenenSatit==1 gibi birşeyler ile ilerleyebilirsin sanırım
  • 19-03-2021, 16:34:34
    #8
    HakanKorkz adlı üyeden alıntı: mesajı görüntüle
    Evet haklısınız arkadaşlar o zaman aklıma şu soru takılıyor belirtiğim kişinin youtube videosunda aynı işlem çalışıyor sorunsuz peki neden?..
    Bu videoyu diyorsan eğer
    https://youtu.be/pX1-F5G8ms8?t=338
    burada kolon adını değiştiriyor balance2 diye böyle bir kolon olmadığı için mysql hata veriyor rolback ediyor sistem.
    • per
    • HakanKorkz
    per ve HakanKorkz bunu beğendi.
    2 kişi bunu beğendi.
  • 19-03-2021, 16:45:24
    #9
    Misafir adlı üyeden alıntı: mesajı görüntüle
    Bu videoyu diyorsan eğer
    https://youtu.be/pX1-F5G8ms8?t=338
    burada kolon adını değiştiriyor balance2 diye böyle bir kolon olmadığı için mysql hata veriyor rolback ediyor sistem.
    evet ilgili video ben bu detay nasıl fark edemedim acabakörüm yeminle şimdi denedim öyle fakat hata verdi ama 1 id den money para düşüyor krediyi