Если вы хотите обойти кэширование, как говорит Red Filter, лучше использовать текущую временную метку.
Если вы действительно хотите получить уникальное 5-значное число, вам придется отслеживатьиз каких номеров вы использовали в прошлом.Вы можете использовать простую базу данных для этого.Вы создаете случайное число, используя rand()
или, согласно руководству, лучше, mt_rand()
, а затем запрашиваете, использовалось ли оно уже:
SELECT FROM mytable WHERE random_number = '$random_number'
повторять до тех пор, показапрос возвращает ноль записей.
Затем используйте номер и вставьте его в запись базы данных:
INSRT INTO mytable (random_number) VALUES ('$random_number');
Если вы не заблокируете таблицу во время записи в нее, естьмикроскопическая вероятность коллизии (то есть два экземпляра одного и того же сценария, заканчивающиеся одним и тем же номером и вставляющие запись одновременно), но если у вас нет действительно огромного количества запросов, я думаю, вы можете изящно игнорировать это.