您好,我正在使用thisPHP PDO类,并试图编写do-while循环。我从未测试过它是否能工作,因为我不想弄乱我的数据库。我想做的是生成一个数字,如果这个数字存在,我希望它产生另一个数字。这是我现在使用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检查声明了另一个变量,然后在循环中设置了另一个变量。

关于php - PHP的PDO类做而,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31762681/

10-12 15:18