PHP PDO类执行while

PHP PDO类执行while,php,mysql,pdo,while-loop,Php,Mysql,Pdo,While Loop,您好,我正在使用PHPPDO类,我正在尝试编写一个DoWhile循环。我从未测试过它是否有效,因为我不想弄乱我的数据库。我想做的是生成一个数字,如果这个数字存在,我想让它生成另一个数字。这是我现在使用PDO类的代码: $db = new db(); do { $generate_SID = mt_rand(100000, 999999); $bindCheck = array( ":sponsorID" => $generate_SI

您好,我正在使用PHPPDO类,我正在尝试编写一个DoWhile循环。我从未测试过它是否有效,因为我不想弄乱我的数据库。我想做的是生成一个数字,如果这个数字存在,我想让它生成另一个数字。这是我现在使用PDO类的代码:

$db = new db();
do {
        $generate_SID = mt_rand(100000, 999999);
        $bindCheck = array(
            ":sponsorID" => $generate_SID
        );
        $sponsorIDChecker = $db->select("accounts", "sponsorID = :sponsorID", $bindCheck);
    }while(count($sponsorIDChecker) > 0);
如您所见,变量
$generate_SID
将生成一个数字,它下面的代码将检查数据库中是否存在该数字


这样行吗?或者我应该在循环之外放置一些东西?谢谢。

所以我删除了循环中的SQL,因为正如一些人所说,这是个坏主意。我的代码现在如下所示:

$sponsorIDrandom = mt_rand(100000, 999999);
        $bindCheck = array(
            ":sponsorID" => $sponsorIDrandom
        );
    $sponsorIDChecker = $db->select("accounts", "sponsorID = :sponsorID", $bindCheck);

    do {
        $generate_SID = mt_rand(100000, 999999);
    }while(count($sponsorIDChecker) > 0);

我为
sponsorID
检查声明了另一个变量,然后在循环中设置了另一个变量。

我建议设置一个测试数据库。在产品中运行之前,您需要能够测试/修改代码。在循环中执行SQL几乎总是一个坏主意。你确定没有循环就做不到吗?@SverriM.Olsen没有循环我能做什么?