Php 如何无限时间生成mysql数据库中不存在的唯一字母数字字符串?
我需要通过检查mysql数据库生成唯一的字母数字字符串。字符串可以是A-Z和0-9的组合。我有try floor()和rand()函数,但如果大量用户尝试一次,则有可能重复相同的字符串。如果生成随机数/字符串,则总是有可能获得相同的字符串。但是,如果生成16个字符(或更多)长度的字符串,则不太可能得到相同的字符串 您可以生成随机字符串,然后检查它是否存在于数据库中。在这种非常罕见的情况下,您可以在while循环中生成新的随机字符串,直到找到一个空闲字符串为止。正如我之前所写的,即使是带有[A-Z0-9]的16个字符长度的文本也几乎不可能重复。这是36^16种可能的组合 您还可以预生成1000个字符串,按随机顺序对它们进行排序,然后放入数据库。然后,您只需从数据库中选择第一个未指定的字符串。您可以使用Php 如何无限时间生成mysql数据库中不存在的唯一字母数字字符串?,php,mysql,Php,Mysql,我需要通过检查mysql数据库生成唯一的字母数字字符串。字符串可以是A-Z和0-9的组合。我有try floor()和rand()函数,但如果大量用户尝试一次,则有可能重复相同的字符串。如果生成随机数/字符串,则总是有可能获得相同的字符串。但是,如果生成16个字符(或更多)长度的字符串,则不太可能得到相同的字符串 您可以生成随机字符串,然后检查它是否存在于数据库中。在这种非常罕见的情况下,您可以在while循环中生成新的随机字符串,直到找到一个空闲字符串为止。正如我之前所写的,即使是带有[A-Z
uniqid()
函数,该函数基于当前时间生成字符串。如果您想要大写字母,请如下所示:
strtoupper(uniqid());
提示:
UUID()-