2015-08-01 2 views
2

Здравствуйте, я использую this PHP PDO Class, и я пытаюсь закодировать цикл while while. Я никогда не тестировал, будет ли это работать, потому что я не хочу испортить свою базу данных. Я хочу сделать это, чтобы сгенерировать число, и если это число существует, я хочу, чтобы он создал другое число. Это мой код теперь использует PDO класса:PHP PDO Class do while

$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 будет генерировать номер и код ниже него будет проверить, если он существует в базе данных.

Будет ли это работать? Или я должен помещать что-то за пределы цикла? Спасибо.

+1

Я бы рекомендовал настроить тестовый бит. Вы должны быть в состоянии проверить/изменить код перед запуском в производство. – nalyd88

+0

Выполнение SQL в цикле - почти всегда плохая идея. Вы уверены, что это невозможно сделать без цикла? –

+0

@ SverriM.Olsen У вас есть что-то в виду, что я могу обойтись без петли? – FewFlyBy

ответ

0

Так что я удалил 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 проверки, а затем установить другую внутри цикла.