如何检查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 { }
答案 0 :(得分:1)
你要做的事情不被认为是“最佳实践”,因为(理论上)你可以创建一个无限循环(创建一个随机ID,然后检查存在可能会在每次迭代中“命中”)。
创建唯一ID的更好解决方案是将列设置为主键,并在每次新插入时递增。
如果您希望其他列唯一,您可以将该列定义为唯一,但您不必依赖“随机”字符串。