你好,所以我有一个代码,它会生成一个随机数,如果它不在数据库中,则回显出“UNIQUE”。这是我的代码:
$require 'connection.php';
try {
$generateID = mt_rand(100000, 999999);
$checkRandomString = $conn->prepare("SELECT * FROM myTable WHERE generatedID = ?");
$checkRandomString->execute(array($generateID));
$row = $checkRandomString->fetch(PDO::FETCH_ASSOC);
if($row > 0) {
// loop back and generate again until it echos out "UNIQUE"
} else {
echo "UNIQUE";
}
} catch {PDOException $e} {
echo $e->getMessage();
}
我想要做的是,如果$generatedID
存在,我希望它再次自动生成,直到它回显出"UNIQUE"
。我怎么能这样做?
答案 0 :(得分:1)
我会用一段时间去做你所描述的事情。
$query = "SELECT count(*) AS num_found
FROM myTable
WHERE generatedID = ?"
$checkRandomString = $conn->prepare($query);
do{
$generateID = mt_rand(100000, 999999);
$checkRandomString->execute(array($generateID));
$row = $checkRandomString->fetch(PDO::FETCH_ASSOC);
}while($row['num_found'] > 0);
是否有必要“随机”的原因?你可以使用自动增量ID。