如何生成唯一的订单号。我不希望使用数据库自动递增。我正在使用以下代码
$check_oid_from_cart_query = "
SELECT
MAX(CONVERT(orderid, UNSIGNED INTEGER)) AS orderid
FROM tbl_cart_hist
WHERE locationid = '$lid'
AND order_type <> '5'";
$check_oid_from_cart_result = dbQuery($check_oid_from_cart_query);
当我使用这个并同时收到两个请求时,我得到的订单号是相同的。
这里已经使用各种方法回答了这个问题,其中一些方法在[http://phpgoogle.blogspot.co.za/2007/08/four-ways-to-generate-unique-id-by-php.html][1]但看到这个问题是3天前提出的,我想你正在寻找一些简单的东西,也许下面的可能会有所帮助?
选项1:使用以微秒表示的时间。microtime()以微秒为单位返回当前Unix时间戳。此函数仅在支持gettimeofday()系统调用的操作系统上可用。
$microseconds = round(microtime(true));
$orderid = $microseconds;
echo $orderid;
选项2:我刚刚提出了这项技术,所以不确定它是否已经100%准备好生产。尝试附加一年中的第几天,最后两位数字,当前时间以分钟为单位,当前时间以秒为单位&随机1位数(根据每天的客户群,您可以增加(mt_rand(1100))
//mt_rand for random digit
$random = (mt_rand(1,9));
// date('z') gives the day of year i.e today is day 106 of the year 2017
$date = date('zyis');
$date .= $random;
$orderid = $date;
echo($orderid);
输出看起来像1051738225
试试这个想法,如果你找到了更好的方法,请告诉我。