【问题标题】:Generating Unique Order Number生成唯一订单号
【发布时间】:2014-03-12 08:06:49
【问题描述】:

我正在尝试通过 Graph API 上传 Facebook 页面的封面图片,但它会在更新后出现在时间轴上。

我正在使用以下字符串来检查我的订单号是否唯一

$unique_order_number = strtoupper(substr(md5(microtime()), 0, 8))

现在我只想确保这个数字没有被任何其他订单占用,并且想使用循环 while 或 do-while 循环来检查分配。

public function __unique_order_no() {

    $order_no_exisits = $this->Order->find('first', array('order_no' => $unique_order_number));

    while (!empty($order_no_exisits)) {
        $unique_order_number = strtoupper(substr(md5(microtime()), 0, 8));
        $order_no_exisits = $this->Order->find('first', array('order_no' => $unique_order_number));
        debug($order_no_exisits);
    }

    debug($order_no_exisits);


}

如何使用 While 循环来运行它直到我得到一个唯一的数字?

【问题讨论】:

    标签: php cakephp unique


    【解决方案1】:
    while (!empty($order_no_exisits)) {
    $unique_order_number = strtoupper(substr(md5(microtime()), 0, 8));
    if(!$this->Order->find('first', array('order_no' => $unique_order_number)))
    exit;
    }
    

    【讨论】:

      【解决方案2】:

      我需要做一些类似的事情,一个保持唯一 ID 的解决方案,我最终得到了一个使用 PHP 函数 time() 的解决方案,就像这样 $reference_number = 'BFF-' . time(); 您可以将 BFF 更改为对您的业务逻辑更有意义的东西.这样我就不用担心是否正在生成的新 id 之前被占用了。

      希望对你有帮助

      【讨论】:

        猜你喜欢
        • 2018-09-01
        • 1970-01-01
        • 2014-04-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-05-21
        • 2023-04-03
        • 2012-07-18
        相关资源
        最近更新 更多