嗨,我正在创建一个处理 ID 和 UID 的系统,我们随机生成的 UID 但我有点卡住了,我需要始终生成数据库中当前不存在的 UID,因为该字段是使用的唯一字段在前端,以免暴露真实ID。
所以回顾一下,我正在尝试生成一个当前在数据库中不存在的唯一 ID,我没有工作的部分是数据库中的交叉检查,所以它有时会给出一个已经存在于数据库中的数字,即使它不应该提前感谢。
到目前为止,这是我的代码:
function uniqueID($table)
{
$db = new mysqli(DB_HOST, DB_USER, DB_PASS, DB_NAME);
$possible = '1234567890';
$code = '';
$characters = mt_rand(7,14);
$i = 0;
while($i < $characters)
{
$code .= substr($possible, mt_rand(0, strlen($possible)-1), 1);
$i++;
}
$result = $db->query('
SELECT uniqueID
FROM '.$table.'
WHERE uniqueID = "'.$code.'"
LIMIT 1
');
$totalRows = $result->num_rows;
if(!$result)
{
return $db->error;
}
else
{
if($totalRows > 0)
{
return uniqueID($table);
}
else
{
return $code;
}
}
}