【问题标题】:How to use PHP to get unique ID?如何使用 PHP 获取唯一 ID?
【发布时间】:2018-03-27 15:07:18
【问题描述】:

我正在制作一个数据库,我想从每个玩家那里获取两个唯一的 ID,比如皇室战争游戏。

1.id唯一编号(它只知道用户)

2.id唯一的数字和字母(所有玩家都可以看到)。

我正在考虑使用时间来获取第一个唯一ID,然后添加一个随机数,但我认为这会创建一个太长的字符串。 此外,它不保证 100% 尚未获得唯一 ID。

我正在使用 PHP 和 MySQL

【问题讨论】:

  • 欢迎来到 StackOverflow!如果您遇到特定编程问题,我们很乐意为您提供帮助,但我们不是来为您编写代码或设计您的系统的。您至少需要尝试解决您自己的问题。请参阅How do I ask a good question?What topics can I ask about here?
  • 感谢即时响应,我的具体问题是如何获得两个唯一的密钥。这不好吗?
  • 我修改了我的帖子。我希望它会变得更好。我是新人,如果我还不能很好地工作,我深表歉意。
  • 请发布您已经尝试过的 PHP 代码。有关更一般的编程建议,还有其他 StackExchange 站点。

标签: php mysql unique-id


【解决方案1】:

https://secure.php.net/manual/en/function.uniqid.php

它不会返回一个数字字符串,因为我猜你可以使用 microtime 加上一个足够长的随机数来将冲突的机会限制为几乎为零。但是为什么不同时使用 uniqid 呢?

【讨论】:

  • 使用唯一的 id 很好,但我得到一个很长的字符串(23 表示强大的安全性),我担心这会影响性能。我正在考虑使用第一个数字 id,因为数字值比字符串值搜索速度更快
  • @Jake uniqid,尽管有名字,但并不保证唯一性。也就是说,只要您为列编制索引,长字符串就不是问题。
  • 使用 GUID 作为主键不是问题,很多人在大型数据库上这样做。从 MySQL 的角度来看,仅仅因为它是一个字符串并不意味着它不能存储为一个数字:stackoverflow.com/questions/2365132/uuid-performance-in-mysql/…
  • 感谢链接非常有用,但没有说明如何从 MySQL 的角度将字符串转换为数字
  • 不要将字符串存储为 varchar 或 char 或类似的形式,而是使用 varbinary 或 binary。我不得不说我自己没有做过,但理论上对我来说是有意义的。请参阅链接中 Kyle Rozendo 的评论,以及更多评论:ovaistariq.net/632/…
猜你喜欢
  • 2023-03-25
  • 1970-01-01
  • 1970-01-01
  • 2019-07-01
  • 1970-01-01
  • 2013-07-05
  • 1970-01-01
  • 1970-01-01
  • 2012-06-10
相关资源
最近更新 更多