php+回滚失效,php mysqli事务回滚无效

如题:

// 开始事务

$mysqli->autocommit(false); // 设置为不自动提交,因为MYSQL默认立即执行

$stmt = $mysqli->prepare("update seat_table set count = count + 1 where seat_id = ? and count < 50");

$stmt->bind_param("i", $old_seat_id);

if ($stmt->execute()) {

$stmt->close();

$stmt = $mysqli->prepare("update seat_table set count = count-1 where bus_id = ? and seattime = ? and count > 0");

$stmt->bind_param("is", $bus_id, $seattime);

if ($stmt->execute()) {

$mysqli->commit(); // 提交

/* 判定事务终止,重新启用负载均衡 */

$mysqli->autocommit(TRUE);

$mysqli->close();

// if ($flag == 1) { // 执行退款业务

// }

echo json_encode(array(

"code" => "200",

"order_id" => $stmt->insert_id

));

} else { // 减库失败

$mysqli->rollback();

die('1500');

}

} else { // 回库失败

$mysqli->rollback();

die('2500');

}

首先我这个语句报了错,报Fatal error: Call to a member function bind_param() on a non-object ,报错地方在第一个语句(加库存操作count=count+1),但是无解为什么报错,语句是不会错的,在命令行可正确执行

然而就算报错了,却仍然被执行了(十万个程序员问号),结果就是库存加了1,要减的没有变化。

我蒙蔽了,大半夜的很头痛。

求助问题所在!!非常感谢!!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值