PHP / MySQL - 创建唯一随机字符串的最佳方法?
如何在MySQL中创建随机唯一字符串?
当我需要在PHP中创建一个随机字符串时,我使用这个函数:
public function generateString($length)
{
$charset = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
for($i=0; $i<$length; $i++)
$key .= $charset[(mt_rand(0,(strlen($charset)-1)))];
return $key;
}
然后,我会获取生成的字符串并将其存储在MySQL数据库中。
确保生成的随机字符串对于为数据库中的其他条目创建的所有其他随机字符串是唯一的,的最佳方法是什么?
也许是这样的东西?
while(++$i < 100)
{
//query db with random key to see if there is a match
//if no match found break out of loop
break;
}
这似乎很混乱而且很长,我可能会多次命中数据库。如何快速确定我的新随机字符串是唯一的?