人人人妻人人人妻人人人,99精品国产综合久久久久五月天 ,欧美白人最猛性XXXXX,日韩AV无码免费播放

News新聞

業(yè)界新聞動態(tài)、技術(shù)前沿
Who are we?

您的位置:首頁      樂道系統(tǒng)FAQ      ecshop怎樣解決重復(fù)訂單問題

ecshop怎樣解決重復(fù)訂單問題

標(biāo)簽: 發(fā)布日期:2017-04-20 00:00:00 810

  ecshop是一個比較優(yōu)秀的網(wǎng)上商城CMS系統(tǒng),其程序比較小,但是電商所涉及到的功能一樣不少。其一些程序核心還是值得借鑒學(xué)習(xí)的。


  在做某一個小企業(yè)站的時候,客戶需要新增訂單功能,那么怎么解決重復(fù)訂單問題,因?qū)cshop比較熟,就借鑒了ECSHOP的處理方式;


代碼

$error_no = 0;
do
{
$order['order_sn'] = get_order_sn(); //獲取新訂單號
$GLOBALS['db']->autoExecute($GLOBALS['ecs']->table('order_info'), $order, 'INSERT');
$error_no = $GLOBALS['db']->errno();
if ($error_no > 0 && $error_no != 1062)
{
die($GLOBALS['db']->errorMsg());
}
}
while ($error_no == 1062);


  其代碼很好理解,首先對錯誤碼進(jìn)行清零。然后使用do while 進(jìn)行提交(插入訂單表);


  正常情況下,至少提交一次。首先,使用訂單號生成程序生成一個新的訂單號,這個訂單號是日期加隨機生成,雖然重復(fù)的幾率比較小,但是還是不得不防止重復(fù)的現(xiàn)象發(fā)生,所以有了這個處理機制;


  接下來,把獲取到的新訂單號,賦予到訂單數(shù)組 order_sn中,然后開始插入操作;

然后,判斷插入操作是否出錯。因order_sn加入了索引,并且為Unique類型,如果重復(fù),則插入出錯;


  如果出錯代碼為除0和1062外的代碼,則彈出出錯消息;


  如果出錯代碼為1062,則繼續(xù)提交,直到提交成功。