0

前言:我正在使用 Zend Framework 1.12 和 RedBean PHP。

下面的函数查询表以查看是否存在任何条目。如果为真,它会从文件名中删除数值,增加它,然后返回它。很简单。如果不存在条目,则从 1 开始。同样,基本的。这一切都按预期工作,除了 2 个可预测的随机时刻。我说可预见的随机是因为我已经成功地多次复制了这个问题,每次结果都相似,但又不同。

可预测的部分是,当计数器小于 10 时,数值似乎会重复两次(10 次重复中的 1 次除外)。我可以继续增加函数,直到计数器达到 60,而无需进一步欺骗。也没有重复数字的模式。

下面是使用 ZF 和 RedBean 的函数,然后是输出。

    public function getNextOrderFormNumber() {      
    $orderFormNumber = R::getCell( 'select orderFormFilename from orders_manufOrderForms order by dateCreated desc limit 1' );

    // if an entry exits
    // the result will be like 'mmOrderForm-1.pdf'
    if($orderFormNumber){
        $num = explode('.', substr($orderFormNumber, 12));
        $this->orderFormNumber = $num[0];
    }

    Zend_Debug::dump($orderFormNumber, 'DB');
    Zend_Debug::dump($this->orderFormNumber, 'Current Number');
    Zend_Debug::dump( date('i:s') );

    // start at 1 for first order, else increment the value
    if(!$this->orderFormNumber) {
        $this->orderFormNumber = 1;
    } else {
        $this->orderFormNumber++;
    }

    Zend_Debug::dump($this->orderFormNumber, 'newOrderNumber');
    return $this->orderFormNumber;
}

如果您仍在关注,我在其中有几个 ZF 转储以仔细检查输出以验证实际发生的情况。我还添加了一个时间戳,因为无论出于何种原因,我都认为这是一个时间问题,例如脚本滞后,但似乎并非如此。我还应该补充一点,它不仅仅是一个随机重复,因为某些东西被卡住了,它实际上是在执行一个调用,而只是覆盖了以前的值。

DB array(0) {
}
Current Number NULL
string(5) "26:29"
newOrderNumber int(1)
filename to save as string(17) "mmOrderForm-1.pdf"
--
DB string(17) "mmOrderForm-1.pdf"
Current Number string(1) "1"
string(5) "26:30"
newOrderNumber int(2)
filename to save as string(17) "mmOrderForm-2.pdf"
--
DB string(17) "mmOrderForm-2.pdf"
Current Number string(1) "2"
string(5) "26:31"
newOrderNumber int(3)
filename to save as string(17) "mmOrderForm-3.pdf"
--
DB string(17) "mmOrderForm-2.pdf"
Current Number string(1) "2"
string(5) "26:31"
newOrderNumber int(3)
filename to save as string(17) "mmOrderForm-3.pdf" <-- first occurrence
--
DB string(17) "mmOrderForm-3.pdf"
Current Number string(1) "3"
string(5) "26:32"
newOrderNumber int(4)
filename to save as string(17) "mmOrderForm-4.pdf"
--
DB string(17) "mmOrderForm-4.pdf"
Current Number string(1) "4"
string(5) "27:36"
newOrderNumber int(5)
filename to save as string(17) "mmOrderForm-5.pdf"
--
DB string(17) "mmOrderForm-5.pdf"
Current Number string(1) "5"
string(5) "27:37"
newOrderNumber int(6)
filename to save as string(17) "mmOrderForm-6.pdf"
--
DB string(17) "mmOrderForm-6.pdf"
Current Number string(1) "6"
string(5) "27:38"
newOrderNumber int(7)
filename to save as string(17) "mmOrderForm-7.pdf"
--
DB string(17) "mmOrderForm-7.pdf"
Current Number string(1) "7"
string(5) "27:39"
newOrderNumber int(8)
filename to save as string(17) "mmOrderForm-8.pdf"
--
DB string(17) "mmOrderForm-7.pdf"
Current Number string(1) "7"
string(5) "27:39"
newOrderNumber int(8)
filename to save as string(17) "mmOrderForm-8.pdf" <-- second occurrence

TL;DR:这似乎不适合这里的任何其他问题。感觉像是一件非常随机的事情或非常明显的事情,我只是没有看到它。(可能是最糟糕的 tr;博士,对不起)

真诚地……难住了。

4

0 回答 0