Я буду использовать метод GET с NFC для извлечения некоторых данных, я хочу заполнить базу данных множеством уникальных цифр, я не против, чтобы в них были такие ключевые слова, как
TOM05543
TOM04423
KEL04432
KAL43242
Каков наилучший способ сделать это и заполнить мою базу данных этими уникальными идентификаторами заранее?
Создайте функцию PHP, которая может генерировать случайный арифметический код, и проверьте, существует ли этот код в таблице БД или нет. Если существует, то вызов функции выполняется рекурсивно, пока не будет сгенерирован уникальный код. И вставить уникально сгенерированную запись в таблицу БД.
<?php
//DB connection
$con=mysqli_connect("localhost","my_user","my_password","my_db");
//Function to generate unique alpha numeric code
function generateRandomNumer($con,$len=8){
$randomString = substr(MD5(time()),$len);
//Check newly generated Code exist in DB table or not.
$query = "select * from table_name where col_name='".$randomString."'";
$result=mysqli_query($con,$query);
$resultCount=mysqli_num_rows($result);
if($resultCount>0){
//IF code is already exist then function will call it self until unique code has been generated and inserted in Db.
generateRandomNumer($con);
}else{
//Unique generated code will be inserted in DB.
mysqli_query($con,"INSERT INTO Persons (col_name) VALUES ('".$randomString."')");
}
}
//Loop to insert number of unique code in DB.
//NUM_OF_RECORD_YOU_WANT_TO_INSERT define constant which contain number of unique codes you wants to insert in DB.
for($i=0;$i<NUM_OF_RECORD_YOU_WANT_TO_INSERT;$i++){
generateRandomNumer($con);
}
?>
Вы можете использовать решение, предлагаемое на http://guid.us/GUID/PHP который :
function getGUID(){
if (function_exists('com_create_guid')){
return com_create_guid();
}else{
mt_srand((double)microtime()*10000);//optional for php 4.2.0 and up.
$charid = strtoupper(md5(uniqid(rand(), true)));
$hyphen = chr(45);// "-"$uuid = chr(123)// "{".substr($charid, 0, 8).$hyphen
.substr($charid, 8, 4).$hyphen
.substr($charid,12, 4).$hyphen
.substr($charid,16, 4).$hyphen
.substr($charid,20,12)
.chr(125);// "}"return $uuid;
}
}
Более подробную информацию о GUID можно найти по адресу https://en.wikipedia.org/wiki/Globally_unique_identifier
Я понимаю, что GUID не является технически уникальным, однако вероятность того, что хороший генератор случайных чисел сгенерирует 2 идентичных идентификатора GUID, составляет примерно 1 к 2 ^ 122, что означает, что если вы генерируете GUID каждые 1 миллисекунду, вы попадете в первый дубликат примерно за 1 секунду. 10 ^ 26 лет.
Преимущество этого состоит в том, что нет необходимости проверять базу данных, если ключ уже существует или нет, поскольку мы предполагаем, что это не так.