【发布时间】:2011-12-15 03:33:39
【问题描述】:
如何在 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;
}
这看起来很乱而且很长,我可能会多次访问数据库。如何快速确定我的新随机字符串是唯一的?
【问题讨论】:
-
Short unique id in php 的可能重复项