[英]Random number insert mySQL not working
嘿,我創建了2個像這樣的隨機數:
$firstlink = intval(mt_rand(100, 999) . mt_rand(100, 999) . mt_rand(1, 9) . mt_rand(100, 999)); // 10 digit
$secondLink = intval(mt_rand(1000, 999) . mt_rand(1, 999) . mt_rand(10, 99) . mt_rand(100, 999));
這是我的插入代碼:
$result = mysql_query("INSERT INTO userAccount
(Category,Fname,LName,firstlink,secondLink,AccDate)
VALUES ( '" . $cat . "',
'" . $fname . "',
'" . $lname . "',
" . $firstlink . ",
" . $secondLink . ",
'" . date('Y-m-d g:i:s',time()). "');");
它沒有錯誤,並且將數據放入mysql數據庫。 然而,它始終為BOTH 首聯和是secondlink相同數量不管我誰添加到數據庫中,我不知道為什么它這樣做!
兩行的數據類型均為INT(15)
刪除intval,一切正常。
$firstlink = mt_rand(100, 999) . mt_rand(100, 999) . mt_rand(1, 9) . mt_rand(100, 999); // 10 digit
32位系統的最大有符號整數范圍為-2147483648至2147483647。使用intval時,您最多可獲得2147483647。
您可以像下面這樣簡化代碼並提高代碼的隨機性:
$firstlink = mt_rand(10000,99999) . mt_rand(10000,99999);
$secondLink = mt_rand(10000,99999) . mt_rand(10000,99999);
echo "INSERT INTO userAccount
(Category,Fname,LName,firstlink,secondLink,AccDate)
VALUES ( '" . $cat . "',
'" . $fname . "',
'" . $lname . "',
" . $firstlink . ",
" . $secondLink . ",
'" . date('Y-m-d g:i:s',time()). "');"
PHPFiddle: http ://phpfiddle.org/main/code/6nf-wpk
通過制作兩個隨機的5位數代碼並將它們連接在一起,可以構建10位數的隨機代碼。 Is變得更簡單,並且只需更少的零件即可輕松完成。 必須使用兩個mt_rand()來完成,因為可能的最大數量為2147483647。對於您使用的每個mt_rand()函數,要防止0成為該部分中的第一位數字,因為從1到9之間的第一個數字開始。
如果您不關心第一個數字僅為1或2(從不為3-9或0),則可以簡單地使用
$firstlink = mt_rand(1000000000,2147483647); // random 10 digit number
$secondLink = mt_rand(1000000000,2147483647); // random 10 digit number
作為一般編碼技巧:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.