PHP. "INSERT INTO" запускается дважды через PHP mysqli_query! - PullRequest
1 голос
/ 27 сентября 2010
for($j = 0 ; $j < 87; $j++){

     echo $j.'<br/>';
     $unique = mt_rand(0,100000000);

    $insert_data = 'INSERT INTO uniques(uniq) VALUES ("'.$unique.'")';

        mysqli_query($conn , $insert_data);

        echo $unique.'<br />';

}

Я просто хочу вставить случайное число в таблицу уникальности. Но что-то не так с приведенным выше кодом. Он работал нормально, когда общий цикл меньше 86, и вставлялся дважды при цикле выше 86.

Большое спасибо!

Я не имею в виду, что я получил дубликат случайного числа. Но, похоже, «INSERT INTO» дважды запускается в моем php-коде!

Ответы [ 2 ]

1 голос
/ 27 сентября 2010

Поскольку вам нужны уникальные номера, вы можете найти здесь примеры справки

http://www.php.net/manual/en/function.mt-rand.php#83365

В качестве альтернативы вы можете использовать выражение where, чтобы избежать дублирования, но это может быть медленным, если выдобавляем большое количество записей.

1 голос
/ 27 сентября 2010

mt_rand(0,100000000) просто возвращает случайное число от 1 до 100000000, оно не отслеживает ранее сгенерированные случайные числа, поэтому вы можете получить дубликаты.

Если вы хотите убедиться, что вы вставляете только уникальные значения в БД, вам придется вести историю сгенерированных случайных чисел и продолжать звонить mt_rand, пока вы не получите уникальное .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...