Php 创建一个唯一的对话号码

Php 创建一个唯一的对话号码,php,mysql,sql,Php,Mysql,Sql,我正在使用一个私人消息系统,我想分配一个唯一的对话号码,以便识别是否有多个用户参与同一个对话。我正在考虑分配发送消息的人的用户ID+microtime(),如下所示: $conversation_number = md5($_POST['user_id']+microtime()); 该代码是否总是产生一个唯一的号码,或者也可能意外地为后续消息生成相同的号码?您可以使用,它用于生成唯一的ID。您可以使用,用于生成唯一ID。为什么不使用该函数?为什么不使用该函数?我认为phpuniqid就足够

我正在使用一个私人消息系统,我想分配一个唯一的对话号码,以便识别是否有多个用户参与同一个对话。我正在考虑分配发送消息的人的用户ID+
microtime()
,如下所示:

$conversation_number =  md5($_POST['user_id']+microtime());

该代码是否总是产生一个唯一的号码,或者也可能意外地为后续消息生成相同的号码?

您可以使用,它用于生成唯一的ID。

您可以使用,用于生成唯一ID。

为什么不使用该函数?

为什么不使用该函数?

我认为php
uniqid
就足够了

来自PHP文档

如果设置为TRUE,uniqid()将在返回值的末尾添加额外的熵(使用组合线性同余生成器),这将增加结果唯一的可能性

试一试


然而,在
md5
中,32位十六进制值(16^32)中大约有3.402823669209387e+38个不同的值。你的几率非常小,仍然会有一个重复的

我认为php
uniqid
就足够了

来自PHP文档

如果设置为TRUE,uniqid()将在返回值的末尾添加额外的熵(使用组合线性同余生成器),这将增加结果唯一的可能性

试一试


然而,在
md5
中,32位十六进制值(16^32)中大约有3.402823669209387e+38个不同的值,你的几率非常小,会有一个重复的值。尽管如此

你回答得非常快,但我认为Baba的解释非常好,所有答案都是正确的!我应该如何决定接受哪一个?有指导方针吗?;-)@马蒂亚:我认为这没有规则,只要接受你喜欢的答案:)好吧,你有将近40000。。。我相信你不会生气的……谢谢;-)你的回答真的很快,但我认为爸爸的解释真的很好,所有的答案都是正确的!我应该如何决定接受哪一个?有指导方针吗?;-)@马蒂亚:我认为这没有规则,只要接受你喜欢的答案:)好吧,你有将近40000。。。我相信你不会生气的……谢谢;-)
  uniqid('id', true)