【问题标题】:PHP PDO Class do whilePHP PDO 类做 while
【发布时间】:2015-10-24 02:34:41
【问题描述】:

你好,所以我正在使用this PHP 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 几乎总是一个坏主意。你确定没有循环就不能完成吗?
  • @SverriM.Olsen 你有什么想法我可以不用循环吗?

标签: php mysql pdo while-loop


【解决方案1】:

所以我删除了循环中的 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 检查声明了另一个变量,然后在循环中设置了另一个变量。

【讨论】:

    猜你喜欢
    • 2017-06-05
    • 2010-10-23
    • 1970-01-01
    • 2011-10-25
    • 1970-01-01
    • 2011-07-05
    • 2015-09-14
    • 2012-05-11
    • 1970-01-01
    相关资源
    最近更新 更多