使用PHP生成随机数,然后提交到数据库


generate random number with php and then submit to database

我想知道如何在html表单提交后使用php生成随机的9位数。

英语

:

我有一个表单在我的网站....它将数据发布到数据库。我想在php文件中添加另一个函数,该函数将为每个表单提交生成一个数字(类似于每个提交表单的用户的唯一id号)

我可以做所有数据库的事情。只需要知道如何生成数字。

rand() = Max 32768 on windows machines

所以如果你选择使用:

mt_rand (100000000,999999999);

但我建议您使用数据库中的AI id,如果您的窗帘需要长度为9,请填充它

str_pad(mysql_insert_id(), 9, "0", STR_PAD_LEFT);
000000001
000000002
000000003
...
000000199
and so on

为什么要重新发明轮子?我建议您让数据库通过UUID()创建一个唯一的id。

尝试uniqid函数

见:http://php.net/manual/en/function.uniqid.php

看一下rand函数

PHP: Rand()

你可以做数据库的东西,你不能生成id?

random: rand(1, 999999999)

或从插入我假设mysql: mysql_insert_id() -如果你使用ID的

我无法想象为什么你会这样做,而不是使用AUTO_INCREMENTPRIMARY KEY,但既然你问:

mt_rand()是这样做的。

不要使用rand()——它是缓慢和有缺陷的

要证明这个概念,请尝试以下操作:

header("Content-type: image/png");
DEFINE('SQUARE_SIZE', 100);
$img = imagecreatetruecolor(SQUARE_SIZE, SQUARE_SIZE);
$ink = imagecolorallocate($img, 255, 255, 255);
for($i = 0, $max = pow(SQUARE_SIZE, 2); $i < $max; $i++) {
    imagesetpixel($img, mt_rand(1,SQUARE_SIZE), mt_rand(1,SQUARE_SIZE), $ink);
}
imagepng($img);
imagedestroy($img);

你会得到像素噪声;如果您将mt_rand调用更改为rand,它将是一个非常明显的重复模式,并且每次都是相同的模式。

的例子改编自php手动注释的mt_rand()