1

我正在设置实体的类别和子类别,因此子类别取决于类别。在设置类别时,我需要确保完成交易成功或完成交易失败。如果我一起使用 2 个查询,它仍然会一个一个地执行,因此有可能一个插入成功而另一个不成功。有没有什么好的方法可以在 php 或 mysqli 中保持原子性?

4

1 回答 1

2

不,因为这些数据库是完全不相关的,并且没有跨数据库事务之类的东西。至少,不是我所知道的。:)

但是,如果您将事务用于插入,则会更安全一些。在两个数据库上启动一个事务,对两个数据库进行所有修改,然后才提交两个事务。插入/更新语句已经运行(如果出现约束错误等问题,可能会失败),因此在您即将提交的时候,不会有太多可能出错的地方。

确保您的表属于支持事务的存储类型。

[编辑]

您可以使用

START TRANSACTION;

-- Your queries go here

COMMIT

在事务中执行语句。

有关更多信息,请阅读:http ://dev.mysql.com/doc/refman/5.0/en/commit.html

于 2012-09-04T18:30:51.020 回答