例如:进行从用户A的支付转移到用户B. 用户A的账号:-10美元 用户B的帐户:10 USD

如果有一个事务,不顺心的事,一切都被撤消。因此,与交易不会发生该帐户的用户A的得到由10下降,同时考虑用户B没有得到提高10。

我知道Java的人利用交易和回滚所有的地方。但我从来没有听说过PHP的家伙这样做的。

没有正确的解决方案

其他提示

$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的。

如果您使用PDO,它也有事务支持

http://us2.php.net/manual/en/pdo .begintransaction.php

就像是已经说了,请确保您使用InnoDB存储引擎。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top