php 不重复订单号,php如何生成不重复的订单号

本文总结了PHP生成不重复订单号的四种方法,包括利用数据库主键、日期+自增数、随机数以及字母+数字字符串。同时探讨了订单号设计的原则,如无重复性、长度适中、易于客服理解和查询。并提供了具体代码示例,如使用`date()`结合`mt_rand()`生成订单号。此外,还讨论了订单号设计对用户体验的影响,如日期格式的订单号有利于判断退货期限。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

php生成不重复订单号的方法:1、利用数据库主键值产生一个自增长的订单号;2、实现“日期+自增长数字”的订单号;3、产生随机的订单号;4、实现“字母+数字字符串式”的订单号。

bc5aab460d42ec9a86a186d1a229d75d.png

PHP生成唯一订单号的方法汇总//商品编号生成

(YmdHi)拼接上兑换表生成的Id

//订单号的生成

(YmdHi)拼接上订单表生成的Id

echo date('Ymd') . str_pad(mt_rand(1, 99999), 5, '0', STR_PAD_LEFT);

订单号常见的几种方式:

1.利用数据库主键值产生一个自增长的订单号(订单号即数据表的主键)

2.日期+自增长数字的订单号(比如:2012040110235662)

3.产生随机的订单号(65865325365966)

4.字母+数字字符串式,字母有包含特别意义,C02356652

订单号设计原则: 按需设计

用来检索订单详细信息的唯一特征码,可以利用订单号检索到下单日期、产品类别、颜色、尺码(或款式)、仓位等信息,订单号包含过多的信息有点“画蛇添足”的意味!只要按需设计即可!

订单号设计用户体验规则:

1.订单号无重复性;

2.如果方便客服的话,最好是“日期+自增数”样式的订单号,客服一看便知道订单是否在退货保障期限内容;

3.订单号长度尽量保持短(10位以内),方便用户,尤其电话投诉时,长的号码报错几率高,影响客服效率;

4.订单号尽量保持数字型(纯整数),在数据库订单索引查询中,长整数字型的数据索引与检索效率,远远高于文本型,因此尽量避免“字母+数字字符串式”!

做商城类项目经常需要生成唯一订单号,下面来个汇总!

方法一:return date('Ymd') . str_pad(mt_rand(1, 99999), 5, '0', STR_PAD_LEFT);

方法二: 正在使用。。。return date('Ymd').substr(implode(NULL, array_map('ord', str_split(substr(uniqid(), 7, 13), 1))), 0, 8);

方法三:以前使用。。。public function make_order($user_id)

{

return mt_rand(10,99)

. sprintf('%010d',time() - 946656000)

. sprintf('%03d', (float) microtime() * 1000)

. sprintf('%03d', (int) $user_id % 1000);

}

方法四:$yCode = array('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J');

$orderSn = $yCode[intval(date('Y')) - 2011] . strtoupper(dechex(date('m'))) . date('d') . substr(time(), -5) . substr(microtime(), 2, 5) . sprintf('%02d', rand(0, 99));

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值