MySQL 如何在使用 PHP 时生成不重复的随机数?


<!–

–>

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 语言生成不重复的随机数。通过创建表、生成随机数并存储到数据库中,再从数据库中读取随机数,我们可以轻松地在应用程序中完成不重复随机数的生成。