检查数据库中是否存在 ID


Check if ID exists in database

如何检查 mysql 数据库中是否存在 id,如果存在:创建一个新 id 并重新检查。我有以下代码来创建 id:

$length = 10;
$id = '';
for ($i = 0; $i < $length; $i++) {
    $id .= chr(rand(ord('0'), ord('9')));
}

要检查 id 是否存在,我使用以下代码:

$database->query('SELECT user_id FROM users 
                  WHERE public_id = ':public_id',array(':public_id' => $public_id)');
if($database->count() >= '1') { 
//create a new id 
} else { } 

您尝试做的事情不被认为是"最佳实践",因为(理论上)您可以创建一个无限循环(创建一个随机 ID,然后检查是否存在可能会在每次迭代时"命中")。

创建唯一 ID 的更好解决方案是将列设置为主键,并在每次新插入时递增。

如果希望另一列是唯一的,则可以将该列也定义为唯一的,但不必依赖"随机"字符串。