Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Masukkan string unik dari 8 karakter acak

Ini akan memberi Anda 8 karakter string acak:

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

Ditemukan di sini:http://www.richardlord.net/blog/php-password- keamanan

Atau jika bidang nama pengguna unik, Anda juga dapat menggunakan:

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

Meskipun sangat tidak mungkin, terutama untuk md5, tidak ada case yang menjamin string unik, jadi saya mungkin akan melakukan sesuatu seperti ini:

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

... yang mungkin hanya menghasilkan 1 kueri 'periksa', mungkin 2 dalam kasus unik, dan akan memastikan string unik.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PHP dengan kesalahan MySQL 8.0+:Server meminta metode otentikasi yang tidak diketahui klien

  2. Apa perbedaan antara SQL dan MySQL?

  3. Bagaimana cara menghapus item dari tabel secara rekursif?

  4. Memegang banyak item dalam kolom di mysql

  5. Apa perbedaan antara INSERT dan UPDATE di MySQL?