我想知道如何防止用户信用 例如,我想检查用户的信用,然后如果信用额度足够我减去信用卡的总价格
我搜索并找到stackoverflow question,但问题不是很明确 我知道mysql事务,原子命令,互斥,
但是我找不到关于php + mysql事务的简单问题 所有样本大约有3个或4个查询,如果发生异常则进行滚动后退 而不是在事务部分中使用php检查语句
那就是我的代码 这是对的吗?
$total_price = $count * $price;
mysqli_query("start transaction")
$credit = mysqli_query('select credit from users where uname="test"');
mysqli_query('update `credit`=`credit`-'.$total_price.' where uname="test"');
if($credit > $total_price)
mysqli_query("commit")
else
mysqli_query("rollback");
答案 0 :(得分:0)
您可以使用一个声明来完成:
$result = mysqli_query("UPDATE users SET credit = credit - $total_price WHERE uname='test' AND credit >= $total_price");
$hadCredit = mysqli_affected_rows() > 0;