下面是检查生成的随机数是否在数据库中可用的代码。如果$smsCode已经在数据库中,则生成一个新的随机数。但它并没有如预期的那样工作。

$smsCode = 7552;
        $query = "SELECT * FROM appointment WHERE sms_code = '$smsCode'";
        while($conn->query($query) === TRUE){
            $smsCode = rand(1000,9999);
            $query = "SELECT * FROM appointment WHERE sms_code = '$smsCode'";
            $conn->query($query);
        }
$sql = "INSERT INTO appointment(number) VALUES('$smsCode');

$smsCode = 7552已经存在于数据库中,但它一直将7552存储到数据库中,而不是生成要存储在数据库中的新数字。

最佳答案

<?php
$sms_code=rand(1000,9999);
$cond=True;
while($cond){
    $query = "SELECT * FROM appointment WHERE sms_code = '$smsCode'";
    $result = $conn->query($query);
    if(mysql_num_rows($result)>0)
    {
        $sms_code=rand(1000,9999);
    }
    else
    {
        $cond=False;
    }
}
$sql = "INSERT INTO appointment(number) VALUES('$smsCode')";
?>

关于php - 生成唯一的随机数以存储在数据库中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33194787/

10-11 12:27