[英]Generate unique 4(may be greater) digit random code checking existence in database in laravel
[英]Giving a 4 Digit Random Code to all users within Database
我想用4位隨機數更新我的用戶數據庫。
我似乎陷入了循環的困境,因此它將為數據庫中的每個用戶提供不同的隨機數。 到目前為止,我有這個。
$newpincode = array(sprintf("%04d",mt_rand(0,9999)));
$users_sql = "SELECT * FROM wifi_users";
$result_users = mysql_query($users_sql) or die(mysql_error());
while($row = mysql_fetch_array($result_users)){
foreach ($newpincode as $pin) {
$sql = "UPDATE wifi_users SET `pincode` = '" . $pin . "' WHERE id = '" . $row['id'] . "'";
$resultCount = mysql_query($sql) or die(mysql_error());
$count = mysql_fetch_assoc($resultCount);
}
}
為什么不只運行一個查詢:
UPDATE wifi_users SET `pincode` = LPAD(FLOOR(RAND() * 10000), 4, '0')
請注意,這不能保證唯一性,但是您當前的代碼也不能保證唯一性。 如果您打算擁有10000個以上的用戶,則4位數字不能給您足夠的值來提供唯一性。
如果您正在為每個用戶尋找唯一的隨機數,請查看以下內容: 如何使用PHP在數據庫中不重復地生成隨機數?
$newpincode = rand(0, 9).rand(0, 9).rand(0, 9).rand(0, 9);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.