PHP如果数据库中存在随机代码重新生成随机代码

ngp*_*und 1 php random

我正在尝试创建一个 PHP 脚本,该脚本将创建一个随机代码并根据数据库检查它是否存在。我希望它检查它是否存在,然后生成另一个createRandomCode()并检查它。

不确定如何继续循环直到行数为 0。

function createRandomCode($length='6'){ 
    $chars = "abcdefghijkmnopqrstuvwxyz023456789"; 
    srand((double)microtime()*1000000); 
    $i = 0; 
    $code= ''; 
    while ($i++ < $length){ 
        $code = $code. substr($chars, rand() % 33, 1);  
    } 
    return $code; 
}

$shorturl = createRandomCode();

$q = $db - > query("SELECT * FROM maps WHERE url='".$shorturl.
    "'");
if (mysqli_num_rows($q) > 0) {

    $arr = json_encode($arr);
    echo $arr;
}
Run Code Online (Sandbox Code Playgroud)

All*_*ice 6

听起来像是do...while 循环的一个很好的候选者:

do {
    $shorturl = createRandomCode();
    $q = $db->query("SELECT * FROM maps WHERE url='".$shorturl."'");
} while(mysqli_num_rows($q) > 0);
Run Code Online (Sandbox Code Playgroud)