【问题标题】:Synchronised execution of a function using php using windows platform使用windows平台使用php同步执行一个函数
【发布时间】:2015-03-16 11:48:36
【问题描述】:

这里的情况是我从表中获取最大值并将其加 1 并将其设置为我的 php 文件中的用户的订单号,但问题是当两个或多个用户同时访问同一个文件时,他们将分配了相同的订单号,因此只有一个交易成功而其他交易失败,因为我已将订单字段设置为唯一,我需要帮助解决此问题,因为我不知道按用户安排功能用户。

【问题讨论】:

    标签: php multithreading synchronization scheduling shopping-cart


    【解决方案1】:

    不要询问表中的最大值,而是为订单插入一个新行。这也应该增加最大值。由于永远无法同时进行两次插入,因此您已经解决了问题。

    【讨论】:

    • 感谢您的回复,但场景是加载 php 文件,我必须从表中获取 orderno col 的最大值,我必须将其传递给支付 api,否则我可以按照你说的做通过提供自动增量。仅在加载文件时,我必须获得订单号。
    • 尽量让你的思维更加灵活。显然,您必须以某种方式存储正在使用的订单号,否则可以使用两次。
    • 但是这里的订单没有字段是唯一的,我不能使用它两次。我想在其他用户访问完成时加载结帐文件。
    • 任何PHP文件或函数都可以被多个用户同时访问。这是正常的,你不应该试图改变它。使用数据库可以获得唯一的订单号。永远不会有两个进程同时访问同一个数据库表,它总是按顺序完成的。
    • 好的,谢谢,那么根据您的观点,应该采取什么方法。我应该生成一个随机数并附加到最​​大订单值还是有其他方法
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-09-11
    • 2014-01-31
    • 2021-06-26
    • 1970-01-01
    • 2017-08-25
    • 1970-01-01
    • 2017-04-11
    相关资源
    最近更新 更多