示例:进行从用户A到用户B的付款转帐。 用户A的帐户:-10美元 用户B的帐户:+10美元
如果有交易,出现问题,一切都会被取消。因此,对于交易,用户A的帐户不会减少10,而用户B的帐户不会增加10。
我知道java人们在各处都使用了事务和回滚。但是我从来没有听说过PHP人员这样做。
答案 0 :(得分:5)
$db = new mysqli("localhost", "", "", "");
$db->autocommit(FALSE);
if ($db->query("INSERT ..."))
$db->commit();
else
$db->rollback();
确保您的表格使用InnoDB
引擎:MyISAM
不支持交易。
评论更新:
InnoDB
是MySQL
使用的两个主要存储引擎之一,另一个是MyISAM
。
MySQL
附带InnoDB
支持编译,实际上需要花费一些力气才能将其禁用。
即使是最便宜的主持人,我也从未听说MySQL
被InnoDB
禁用。
答案 1 :(得分:1)