前言:我正在使用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;博士,对不起)
真诚地......难倒。