你好,所以我有一个代码,将生成一个随机数和回声"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"
。我该怎么做呢?
我将使用do while来执行您所描述的操作。
$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。