检查现有数据和Loop Back

时间:2015-07-30 02:35:51

标签: php pdo

你好,所以我有一个代码,它会生成一个随机数,如果它不在数据库中,则回显出“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"。我怎么能这样做?

1 个答案:

答案 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。