Mysql
 sql >> база данни >  >> RDS >> Mysql

Вмъкнете уникални низове от 8 произволни знака

Това ще ви даде произволен низ от 8 знака:

substr(str_pad(dechex(mt_rand()), 8, '0', STR_PAD_LEFT), -8);

Намерено тук:http://www.richardlord.net/blog/php-password- сигурност

Или ако полето за потребителско име е уникално, можете също да използвате:

substr(md5('username value'), 0, 8);

Въпреки че е изключително малко вероятно, особено за md5, нито един случай не гарантира уникален низ, така че вероятно бих направил нещо подобно:

// Handle user registration or whatever...

function generatePID($sUsername) {
    return substr(md5($sUsername), 0, 8);
}

$bUnique = false;
$iAttempts = 0;

while (!$bUnique && $iAttempts < 10) {
    $aCheck = $oDB->findByPID(generatePID("username value")); // Query the database for a PID matching whats generated
    if (!$aCheck) { // If nothing is found, exit the loop
        $bUnique = true;
    } else {
        $iAttempts++;
    }
}

// Save PID and such...

... което вероятно ще даде само 1 „проверка“ заявка, може би 2 в уникални случаи и ще осигури уникален низ.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Проблем с UTF8 кодиране - с добри примери

  2. Функция MySQL ROUND() – Закръгляйте число до даден брой десетични знаци

  3. Скрипт за промяна на всички таблици и полета към utf-8-bin сортиране в MYSQL

  4. Entity Framework + генериране на клас MySQL

  5. Инсталирайте и използвайте Percona Toolkit на Centos 7