0

我如何检查 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 { } 
4

1 回答 1

1

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

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

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

于 2012-08-09T17:30:42.410 回答