PHP和mySQL(i):如何生成随机用户ID?

Joh*_*ith 7 php mysql

如果我想给在我的网站上注册的每个用户一个唯一的ID.在我看来,如果我想这样做,我将不得不:为id创建一个随机数,检查数据库中是否已存在该ID,如果它确实存在则创建另一个随机数并发送另一个查询看看是否存在,依此类推......

这可能会持续很长时间.除了增加id之外,还有什么可行的方法吗?

Wes*_*ley 5

最好的方法是通过自动增量函数,如果你真的不想使用这样的函数,你可以使用 uniqid();

基本上你它会基于毫秒生成一个唯一的 id,如果你在函数中放入一个有点独特的前缀,它将生成一个非常独特的 id。

echo uniqid('prefix');
Run Code Online (Sandbox Code Playgroud)

这样你就不必在生成 id 后检查它是否已经存在。您可以确定它是独一无二的。

有关更多信息,请查看此网址http://php.net/uniqid

  • @JohnSmith 在决定选择哪些字母时,它使用当前时间作为*一个*因素。但它不能纯粹基于时间,因为具有多个服务器的高流量站点会定期在完全相同的微秒内收到两个请求。 (3认同)
  • 不,只需使用随机前缀,例如:uniqid(rand(), true)。极不可能发生! (2认同)