Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Chèn các chuỗi duy nhất gồm 8 ký tự ngẫu nhiên

Điều này sẽ cung cấp cho bạn một chuỗi 8 ký tự ngẫu nhiên:

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

Tìm thấy tại đây: http://www.richardlord.net/blog/php-password- bảo mật

Hoặc nếu trường tên người dùng là duy nhất, bạn cũng có thể sử dụng:

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

Mặc dù nó cực kỳ khó xảy ra, đặc biệt là đối với md5, không có trường hợp nào đảm bảo một chuỗi duy nhất, vì vậy tôi có thể sẽ làm điều gì đó như sau:

// 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...

... mà có thể sẽ chỉ mang lại 1 truy vấn 'kiểm tra', có thể là 2 trong các trường hợp duy nhất và sẽ đảm bảo một chuỗi duy nhất.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL hoặc PHP đang thêm một  bất cứ khi nào £ được sử dụng

  2. JSON_LENGTH () - Trả về độ dài của tài liệu JSON trong MySQL

  3. Phương pháp hay nhất / Tiêu chuẩn để lưu trữ Địa chỉ trong Cơ sở dữ liệu SQL

  4. Doctrine 2 Query Builder abs Hàm abs

  5. ở đâu trong mệnh đề mysql