下面的代码生成八位数,但在db中存储时有时存储为7位数.db列宽为int(11),db为mysql(5.0.45)
srand ((double) microtime( )*1000000);
$maxid = rand(0,100000000);
$mtidno = str_pad($maxid,8);
$shuffled = str_shuffle($mtidno);
echo $shuffled;
Run Code Online (Sandbox Code Playgroud)
首先,通过使用str_pad这样,您将引入空格,这可能会进入"随机"数字的中间.
将您的str_pad电话改为:
str_pad($maxid, 8, "0");
Run Code Online (Sandbox Code Playgroud)
摆脱空间.但请注意,其他问题提供了创建随机8位数字的更好方法.
然后,当你的洗牌结果以0's 开头时,它们就会掉线.
要解决此问题,您可以CHAR(8)在数据库中使用a .然后它将显示前导零.