HuyPV
Wednesday, February 20, 2019
function withdraw($user_id, $amount) {
$amount = (int)$amount;
$this->db->trans_start();
$query = $this->db->query("SELECT * FROM bank_account WHERE user_id = $user_id AND balance >= $amount FOR UPDATE");
if($query->num_rows() === 0) {
$this->db->trans_complete();
return false;
}
$this->db->where('user_id', $user_id)
->set('balance', 'balance-'.$amount, false)
->update('bank_account');
$this->db->where('user_id', $user_id)
->set('balance', 'balance+'.$amount, false)
->update('wallet');
$this->db->trans_complete();
return true;
}
Title:
Xử lý cộng trừ tiền trong tài khoản khi code bằng CodeIgniter
Description:
User gửi nhiều request cộng trừ tiền cùng 1 lúc thì phải xử lý để giao dịch thực hiện tuần tự, không bị âm, bị sai tiền
...
Rating:
4