检查现有数据和Loop Back


Check existing data and Loop Back

你好,所以我有一个代码,将生成一个随机数和回声"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。