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

时间:2011-07-18 15:04:29

标签: php

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

英文:

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

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

6 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

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

答案 2 :(得分:0)

尝试uniqid功能。

请参阅:http://php.net/manual/en/function.uniqid.php

答案 3 :(得分:0)

看一下rand函数

PHP manual: Rand()

答案 4 :(得分:0)

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

随机:rand(1, 999999999)

或者从插入中我假设mysql:mysql_insert_id() - 如果您使用ID

答案 5 :(得分:0)

我无法想象你为什么要这样做,而不是PRIMARY KEYAUTO_INCREMENT一起使用,但是因为你问:

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,那么这将是一个非常明显的重复模式,每次都是相同的模式。

示例改编自mt_rand()

的php手册评论