• 24-05-2022, 16:04:01
    #1
    Hatalı Kod bloğu
    function aPhp($deger){
    try{
    if(is_array($deger)){
      foreach ($deger as $dc){
         if(!aVtislem($deger)){
        $hata=true;
        break;
      }
      if(isset($hata))
    throw new Exception("{işlem başarısız. Geri alınıyor...");
    }
      
    }
    }catch(Exception $i){
      return $i;
    }
    }
    
    function aVtislem($deger){
    try{
      $sorgu=vtBaglan()->prepare("update ayarlar set ayar_val=:deger");
          return $sorgu->execute(array("deger"=>$deger,"id"=>temizle($ad),"tip"=>$tip));
    }catch(Exception $i){
       return false;
    }
    }
    print_r(aPhp(array("deger1","ayar","val")));
    Çözümlenmiş hali
    function aPhp($deger){
    try{
    if(is_array($deger)){
    vtBaglan()->beginTransaction();
      foreach ($deger as $dc){
         if(!aVtislem($deger)){
        $hata=true;
        break;
      }
      if(isset($hata))
    throw new Exception("{işlem başarısız. Geri alınıyor...");
    else
     vtBaglan()->commit();
    }
      
    }
    }catch(Exception $i){
    vtBaglan()->rollBack();
      return $i;
    }
    }
    
    function aVtislem($deger){
    try{
      $sorgu=vtBaglan()->prepare("update ayarlar set ayar_val=:deger");
          return $sorgu->execute(array("deger"=>$deger,"id"=>temizle($ad),"tip"=>$tip));
    }catch(Exception $i){
       return false;
    }
    }
    print_r(aPhp(array("deger1","ayar","val")));
    burada örnek bir kod bloğu paylaştım yapmak istediğim şey aPhp fonksiyonuna göndermiş olduğum değerler kontrol edilsin sorun yoksa foreach ile döngüye alınsın ve herbir değer veritabanına yazılması için aVtislem fonksiyouna gönderilsin burada bir hata gelişirse catch bloğy devreye girsin ve işlem geri alınsın.Bu şekilde yapmak istedim ama sadece fonksiyon içindeki catch bloğuna işlem yaıyor bir önceki yaplan işlemler işlenmiyor.Bunu nasıl yapabilirim?
  • 24-05-2022, 16:09:27
    #2
    $sorgu=vtBaglan()->prepare("update ayarlar set ayar_val=:deger");

    $vtbaglan olarak bir denebilir misin
  • 24-05-2022, 16:11:07
    #3
    Mukavemet adlı üyeden alıntı: mesajı görüntüle
    $sorgu=vtBaglan()->prepare("update ayarlar set ayar_val=:deger");

    $vtbaglan olarak bir denebilir misin
    Ben veritabanı bağlantısını bir fonksiyona atadım ondan bu şekilde kullanıyorum.SOrun olur mu?
  • 24-05-2022, 16:12:50
    #4
    fonksiyonsuz bir deneyebilir misin direkt olarak
  • 24-05-2022, 19:50:40
    #5
    Mukavemet adlı üyeden alıntı: mesajı görüntüle
    fonksiyonsuz bir deneyebilir misin direkt olarak
    Sorunu BeginTransaction methoduyla çözdüm yardımsever davranışınız için teşekkür ederim.