在php中生成唯一值
我正在考虑在php中生成5个字符的唯一字符串时使用的选项。或者如果有人有更好的选择。我不确定substr是否也会降低唯一性的可靠性。谢谢大家的建议 备选案文1:在php中生成唯一值,php,html,function,md5,uniqueidentifier,Php,Html,Function,Md5,Uniqueidentifier,我正在考虑在php中生成5个字符的唯一字符串时使用的选项。或者如果有人有更好的选择。我不确定substr是否也会降低唯一性的可靠性。谢谢大家的建议 备选案文1: $unique_id=substr(md5(time()), -5); 或 备选案文2: $unique_id=substr(uniqid, -5); 这个内置的php函数可以帮助您 rand(min,max); 就我个人而言,我会选择第一个选项,但使用更像: md5(uniqid(rand(),true))正如@Sagar所说,
$unique_id=substr(md5(time()), -5);
或
备选案文2:
$unique_id=substr(uniqid, -5);
这个内置的php函数可以帮助您
rand(min,max);
就我个人而言,我会选择第一个选项,但使用更像:
md5(uniqid(rand(),true))正如@Sagar所说,使用
rand(min,max);
然后将这些值存储在数据库中。在向用户提供随机数之前,请检查数据库中是否已经存在该随机数。如果没有,请继续并插入数据库
大概是这样的:
$rand = rand(min,max);
$sql = "SELECT randomNum FROM users WHERE randomNum = '$rand'";
$result = mysql_query($sql);
$count = mysql_num_rows($result);
if ($count != 1){
//insert to database
}
您可以使用前三个字符的static,最后只嵌入两个字符。如果您使用random,则易于识别。然后,当没有大量数据时,则可能会与某些现有的oneSolution匹配。解决方案可能在此处-选项3:使用PHP,这正好可以实现,根据时间创建ID,请注意文档中的警告。这将不是唯一的吗?两个用户/字符串可以相同。如果存储在Db表中,则可以测试其副本。