关于mysql事务回滚,若涉及多条语句的执行,怎么进行回滚呢?
例如:
线上下单,首先新增一张订单,然后再插入若干条商品数据,接着对商品库存进行扣减,这些一系列的操作的,如果当中一条sql执行失败,如何进行事务回滚比较好?
关于mysql事务回滚,若涉及多条语句的执行,怎么进行回滚呢?
例如:
线上下单,首先新增一张订单,然后再插入若干条商品数据,接着对商品库存进行扣减,这些一系列的操作的,如果当中一条sql执行失败,如何进行事务回滚比较好?
你开启transaction后
$mysqli -> begin_transaction ( MYSQLI_TRANS_START_READ_ONLY );
$mysqli -> query ( "SELECT XXXX" );
$mysqli -> commit ();
$mysqli -> close ();
如果成功事务开始和结束之际的所有的语句只要有一句失败整个事务就失败,如果$mysqli -> commit ();是false就
$mysqli->rollback()
至于你说的是如何回滚,因为你涉及的是物品,新增订单失败了,就让所有的都回滚。
5 回答3.2k 阅读✓ 已解决
3 回答3.6k 阅读✓ 已解决
1 回答4k 阅读✓ 已解决
3 回答1.8k 阅读✓ 已解决
2 回答2.2k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
5 回答1.4k 阅读