注释:用uniqid获取一个基于当前的微秒数生成的唯一不重复的字符串(但是他的前7位貌似很久才会发生变动,所以不用考虑可删除),取其第8到13位。但是这个字符串里面有英文字母,咋办?用ord获取他的ASCII码,所以就有了下一步:用str_split把这个字符串分割为数组,用array_map去操作(速度快点)。然后返回的还是一个数组,KO,在用implode弄成字符串,但是字符长度不定,取前固定的几位,然后前面加上当前的年份和日期,这个方法生成的订单号,全世界不会有多少重复的。当然,不同人在同一时间下单的几率还是较大的,特别是在流量较大时,所以出现重复的概率还是有的。
所以还要做一步操作就是订单插入order表时,先检查此订单号是否已经存在,如果存在则重新生成。这样就可以保证订单号不会重复。
如果不希望在逻辑中增加多一步判断数据库的操作,可以使用专门生成ID的组件。
北京白癜风哪家比较好北京治疗白癜风一般多少钱