db查询后,可预测的增量计数器的随机重复

时间:2012-12-10 03:51:01

标签: php mysql zend-framework redbean

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

下面的函数查询表以查看是否存在任何条目。如果为true,则从文件名中删除数值,递增它,然后返回它。很简单。如果不存在条目,则从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;博士,对不起)

真诚地......难倒。

0 个答案:

没有答案