【问题标题】:How to make sure that there will be no repeats in mt_rand() function?如何确保 mt_rand() 函数中没有重复?
【发布时间】:2018-01-14 08:26:58
【问题描述】:

在我的 php web 应用程序中,我将 mt_rand() 生成的每个数字都存储到数据库中,并使用 mysql 检查它是否已经存在,如果存在,则 index.php 刷新以获取另一个数字,然后再次检查是否该数字存在,如果不存在,则当前数字存储在 db orelse refresh 中。 “问题在于,存储的数字可能会一次又一次地生成,并且页面刷新时间很长,这可能会影响网站加载时间。 那么你能推荐更简单的方法吗?

【问题讨论】:

  • 在数组中转储一次数据,然后生成数字并与数组进行比较,在这种情况下,您只需访问 db 一次,我认为它会很快。
  • 这不是数据库提供自动增量的原因吗?生成唯一编号? mt_rand() 是一个提供随机数的工具,而不是提供唯一的数字。
  • 是的,我明白你的意思,感谢您帮助我!

标签: php jquery html mysql


【解决方案1】:

在数据库(表)中存储不同数字的一种方法是按顺序存储它们。

最初,表格为空,因此您可以在表格中插入 1。现在,从下一次开始,您只需获取存储在最后一行中的数字。将获取的数字加 1,然后将增加的数字插入表中。

这样您就可以在数据库中存储不同的数字。由于每次只运行 3 次数据库查询(第一次获取表的大小,第二次获取最后一行的数字,第三次插入新数字),所以这种方法会比较快。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-14
    • 2015-02-10
    • 2015-01-06
    • 2011-06-22
    • 2021-10-07
    • 1970-01-01
    相关资源
    最近更新 更多