MongoDB 4.0 中使用 PHP 的事务示例

And*_*rga 1 php transactions mongodb

我需要在 PHP 中使用 mongoDB 展示一个事务。在我的例子中,我有“账户”和“转账”。第一个操作我是从“发送者账户”中扣除余额并尝试将钱发送到“受益人账户”,但后者不能接受任何转账,因此交易应该回滚,即钱应该退回到发送者账户。

我找不到任何关于在线交易的 PHP 特定文档,因此我真的不知道如何去做。

感谢您的帮助!

B. *_*ing 7

如果您正在使用包装驱动程序的 PHP 库,则在创建Clienteg called的实例后$client,您可以执行以下操作:

$session = $client->startSession();
$session->startTransaction();
try {
    // Perform actions.
    $session->commitTransaction();
} catch(Exception $e) {
    $session->abortTransaction();
}
Run Code Online (Sandbox Code Playgroud)

不幸的是,粗略搜索后,我在PHP 库参考中找不到任何相关文档,但我在PHP 库的问题中找到了一些示例,这些示例表明从客户端创建会话并使用该会话启动然后提交或中止事务是适当的程序。

但是,有几点需要注意:

如果您查看 MongoDB 文档(如上链接),您会注意到使用副本集的要求并没有特别突出显示,在第三个标题下,并在所有示例代码之后(其中,如果你像我一样,将是你寻找的第一件事)。