• 08-03-2021, 16:47:04
    #1
    merhaba, ben bir sistem yazdım ve bir kod ekledim lâkin bu kodda UPDATE çalışmıyor. Garip olanı şu ben buna 1 kere bile ellemedim ve daha dün çalışıyordu, Mysql hatası vs vs yok UPDATE yapmaya çalıştığım zaman veriyi "" ile değiştiriyor.

    $query = $db->prepare('UPDATE `users` SET `coins` = `coins` + ?, `promotionlist` = ? WHERE `device_id` = ?;'); 
    $sth = $query->execute(array( $data["coin"], json_encode($prolist), $_POST["device_id"], ));
    echo $sth;
  • 08-03-2021, 16:52:34
    #2
    Veriyi "" olarak değiştiriyorsa update etmeye çalıştığınız değerler boş yada null olarak geliyor demektir.
  • 08-03-2021, 16:53:16
    #3
    emreires adlı üyeden alıntı: mesajı görüntüle
    Veriyi "" olarak değiştiriyorsa update etmeye çalıştığınız değerler boş yada null olarak geliyor demektir.
    hocam sorun şu SET coins = 5 yapsam bile "" yapıyor. Sadece coins rowunda bu sorun oluyor galiba.
  • 08-03-2021, 17:03:19
    #4
    Androsoft adlı üyeden alıntı: mesajı görüntüle
    merhaba, ben bir sistem yazdım ve bir kod ekledim lâkin bu kodda UPDATE çalışmıyor. Garip olanı şu ben buna 1 kere bile ellemedim ve daha dün çalışıyordu, Mysql hatası vs vs yok UPDATE yapmaya çalıştığım zaman veriyi "" ile değiştiriyor.

    $query = $db->prepare('UPDATE `users` SET `coins` = `coins` + ?, `promotionlist` = ? WHERE `device_id` = ?;');
    $sth = $query->execute(array( $data["coin"], json_encode($prolist), $_POST["device_id"], ));
    echo $sth;
    tırnak işaretlerinde sorun var gibi. bir de aşağıdaki gibi deneyin.

    $query = $db->prepare("UPDATE users SET coins=coins+?, promotionlist=? WHERE device_id=?");
    $sth = $query->execute(array( $data["coin"], json_encode($prolist), $_POST["device_id"]));
    echo $sth;
  • 08-03-2021, 17:06:10
    #5
    hyPerdarKness adlı üyeden alıntı: mesajı görüntüle
    tırnak işaretlerinde sorun var gibi. bir de aşağıdaki gibi deneyin.

    $query = $db->prepare("UPDATE users SET coins=coins+?, promotionlist=? WHERE device_id=?");
    $sth = $query->execute(array( $data["coin"], json_encode($prolist), $_POST["device_id"]));
    echo $sth;
    hocam phpmyadminde sorun olmadığını, hatta çalışıp işlem yaptığını görebiliyorum
  • 08-03-2021, 17:10:22
    #6
    $query = $db->prepare('UPDATE users SET coins = coins + ?, promotionlist = ? WHERE device_id = ? ');
    $query->bindParam(1,$data['coin],PDO::PARAM_INT);
    $query->bindParam(2,json_encode($prolist) ,PDO::PARAM_STR);

    $query->bindParam(3,$_POST["device_id"],PDO::PARAM_INT);

    $query->execute();
    İf ($query->rowCount() > 0) {echo $query->rowCount() . " kayıt güncellendi.";}
    else {echo "Herhangi bir kayıt güncellenemedi. - hata:" .$db->errorInfo()[2] ; }
  • 08-03-2021, 17:13:14
    #7
    Yeni bir dosya oluşturup AYNI kodu yazdım. ÇALIŞTI?????????????
    ben yeni bir dosya oluşturup bu işlemi yapabilirim ama NEDEN? bir anda sunucuda böyle bir sorun patlak verdi ve ben hiçbir şey yapamadım bunun yüzünden, tam olarak nedeni nedir? benzer kod başka yerdede var.

    Edit: gene aynısı oldu.
  • 08-03-2021, 17:16:37
    #8
    darness adlı üyeden alıntı: mesajı görüntüle
    $query = $db->prepare('UPDATE users SET coins = coins + ?, promotionlist = ? WHERE device_id = ? ');
    $query->bindParam(1,$data['coin],PDO::PARAM_INT);
    $query->bindParam(2,json_encode($prolist) ,PDO::PARAM_STR);

    $query->bindParam(3,$_POST["device_id"],PDO::PARAM_INT);

    $query->execute();
    İf ($query->rowCount() > 0) {echo $query->rowCount() . " kayıt güncellendi.";}
    else {echo "Herhangi bir kayıt güncellenemedi. - hata:" .$db->errorInfo()[2] ; }
    Herhangi bir kayıt güncellenemedi. - hata:
  • 08-03-2021, 17:24:05
    #9
    Androsoft adlı üyeden alıntı: mesajı görüntüle
    Herhangi bir kayıt güncellenemedi. - hata:
    $data['coin]
    json_encode($prolist)
    $_POST["device_id"]
    şu değerlerin varlığından emin olmak lazım
    mesala
    $prolist = json_encode($prolist);
    $kontrol = isset($data['coin']) && is_numeric($data['coin']) && !empty($prolist) && isset($_POST['device_id']) && is_numeric($_POST['device_id]);

    if($kontrol):
    //db işlemleri
    else:
    echo 'veriler , güncelleme kriterlerini karşılamıyor.';
    endif;