检查数据库中是否存在ID

时间:2012-08-09 17:18:01

标签: php mysql

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

1 个答案:

答案 0 :(得分:1)

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

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

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

相关问题