>  기사  >  백엔드 개발  >  订单编号有关问题求解

订单编号有关问题求解

WBOY
WBOY원래의
2016-06-13 13:21:531148검색

订单编号问题求解?
$orderid=GB_.substr(date('YmdHis')).mt_rand(0,999999);

这样是对的吗?

为什么得到的 GB_465505 是这样的,中间的时期没有呢?这样这个订单编号相同机率会有多大?

------解决方案--------------------
随机数当然概率是一样大 不过也有重复的可能
------解决方案--------------------
GB_.substr(date('YmdHis')).mt_rand(0,999999);

substr($string, $start, $length);

这个方法要三个参数,第一个是字符串,也就是你的时间,第二个是截取开始位置,第三个是截取长度
------解决方案--------------------
$orderid = 'GB_' . date('YmdHis') . mt_rand(0,999999);

虽然使用随机数出现冲突的概率不大(对你是百万分之一)
但他不连续,不便于管理。也不能防止伪造

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.