Моя проблема — откат транзакции по запросу
Таблица пользователей
Сипарислер стол
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 при добавлении заказа прошла успешно. Метод Rollback () Begintransaction не отменяет это действие
Задача ещё не решена.
Других решений пока нет …