如何生成唯一的订单号。 我不希望使用数据库自动增加。 我使用以下代码
$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);
当我使用它并同时获得两个请求时,我得到相同的订单号。
答案 0 :(得分:1)
此问题已在此处使用各种方法得到解答,其中一些方法在{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%准备就绪。尝试追加年中的一天,年份的最后2位数,以分钟为单位的当前时间,以秒为单位的当前时间。随机1位数字(根据每日客户群,您可以增加(mt_rand(1,100)))
//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
玩这个想法,让我知道你是否找到了更好的方法。