Ошибка отката Pdo Begintransaction - PullRequest
0 голосов
/ 13 февраля 2019

Моя проблема в том, что откат транзакции по запросу не работает
Таблица пользователей

  • id int (11) AI
  • баланс double (10)
  • пароль varchar (100)
  • eposta varchar (60)
  • lastlogin text () Json

    таблица Siparisler

  • sipid int (11) AI
  • packid int (11)
  • userid int (11)
  • сумма double (10)
  • limit int (6)
  • sipcode varchar (15)



DB CONNECT CLASS

class baglan
{
    public $vt;
    function db()
    {
        if($this->vt)
        {
            return $this->vt;
        }
        else{
            try
            {
                $this->vt=new PDO("mysql:host=localhost;dbname=twitterapp;charset=utf8","root","");

            }
            catch(PDOEXception $i)
            {
                die("veritaibanı Bağlantısı yapılamadı Hata Detayı : ".$i->getMessage());
            }
            return $this->vt;
        }
    }
}



Способ оплаты

function payment()
{
    $this->db()->beginTransaction();
    try{
        $sipekle=$this->db()->prepare("insert into siparisler set packid=:pack,userid=:alici,limit=:siplimit,amount=:price,sipcode=:code");
        $sipekle->execute(array("pack"=>1,"alici"=>1,"siplimit"=>100,"price"=>10,"code"=>"12ASX43AZ12QP"));
        $bakiye=$this->db()->prepare("update user set balance=balance-:cost where id=:uid");
        $bakiye->execute(array("cost"=>1,"uid"=>1));
        $this->db()->commit();
        return(array("durum"=>"İşlem başarılı"));
    }
    catch(PDOEXCeption $i)
    {
        $this->db()->rollback();

        return(array("hata"=>"İşlem sırasında hata oluştu.Lütfen tekrar deneyin.Sürekli olarak bu hatayı alıyorsanız destek talebi açın:<br>Hata Kodu: ERR-SIP-0_".time()));            
    }       
}

РЕЗУЛЬТАТЫ

Array
(
    [hata] => İşlem sırasında hata oluştu.Lütfen tekrar deneyin.Sürekli olarak bu hatayı alıyorsanız destek talebi açın:
Hata Kodu: ERR-SIP-0_1550070987
)

таблица siparisler добавлены данные
баланс пользователя не обновляется
Откат ();не работает
Не удалось обновить баланс пользователя, таблица Siparisler добавляет заказ успешно.Метод Begintransaction Rollback () не отменяет это действие

...