ホームページ  >  記事  >  バックエンド開発  >  注文番号に関する問題の解決

注文番号に関する問題の解決

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);

このメソッドには 3 つのパラメータが必要です。最初のパラメータは文字列で、これは時間です。 2 番目はインターセプトの開始位置、3 番目はインターセプトの長さです
------解決策-----
$orderid = 'GB_' . YmdHis ') . mt_rand(0,999999);

乱数を使用した競合の確率は低いですが (100 万分の 1 です)
しかし、それは継続的ではないため、管理するのは簡単ではありません。また、偽造を防止するものでもありません

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。