<!–
MySQL 如何在使用 PHP 时生成不重复的随机数?
在数据库中生成不重复的随机数常用于用户验证码、订单编号等场景,本文将介绍如何使用 数据库与 PHP语言完成这个任务。
阅读更多:
Step 1:创建表
首先,我们需要在 数据库中创建一个名为 “random_numbers” 的表,该表包含两个字段:
(adsbygoogle = window.adsbygoogle || []).push({});
id
:自增的主键random_number
:用于存储生成的随机数
下面是创建表的 语句:
CREATE TABLE random_numbers(
id INT(11) NOT NULL AUTO_INCREMENT,
random_number INT(11) NOT NULL,
PRIMARY KEY ( id )
);
Step 2: 生成随机数并将其插入到数据库中
接下来,我们使用 代码向上一步中创建的表中插入随机数。我们先定义一个用于生成随机数的函数 generateRandomNumber(min,max)
,该函数使用 的 mt_rand()
函数生成随机数。
function generateRandomNumber(min,max) {
number = mt_rand(min, max); returnnumber;
}
接下来,我们需要使用一个循环来生成一组不重复的随机数。在生成每个随机数时,我们需要检查该值是否已存在于数据库中。如果该值已存在,则继续生成随机数,直到找到一个不重复的随机数。
$min = 1000; // 随机数范围的最小值
$max = 9999; // 随机数范围的最大值
for ($i = 1; $i <= 10; $i++) {
$number = generateRandomNumber($min, $max);
$query_check = "SELECT random_number FROM random_numbers WHERE random_number = '$number'";
$result_check = mysqli_query($connection, $query_check);
$count_check = mysqli_num_rows($result_check);
if ($count_check == 0) {
$query = "INSERT INTO random_numbers (random_number) VALUES ('$number')";
mysqli_query($connection, $query);
} else {
continue;
}
}
在上述代码中,我们首先定义一个 $min
和 $max
用于生成随机数的范围。然后我们使用 for
循环重复生成 10 次随机数,并使用 $query_check
语句检查数据库中是否已存在该随机数。如果不存在则插入到数据库中。
Step 3: 读取数据库中的随机数
最后,我们使用以下代码从数据库中读取生成的不重复随机数:
$query_read = "SELECT random_number FROM random_numbers";
$result_read = mysqli_query($connection, $query_read);
while($row = mysqli_fetch_assoc($result_read)) {
echo $row['random_number'] . "<br/>";
}
以上代码从 random_numbers
表中读取所有的 random_number
字段,并通过一个循环遍历表格,输出随机数。
(adsbygoogle = window.adsbygoogle || []).push({});
总结
本文介绍了如何使用 MySQL 数据库与 PHP 语言生成不重复的随机数。通过创建表、生成随机数并存储到数据库中,再从数据库中读取随机数,我们可以轻松地在应用程序中完成不重复随机数的生成。