PHP随机数存储在数据库问题中

时间:2015-01-23 23:59:43

标签: php random

我遇到了这种奇怪的问题。 rand()函数正确生成随机数。但是当它存储在数据库中时,数字就消失了,只有“8388607”号存储在MySQL数据库中。我发现这个问题真的很奇怪。

$passcode=rand(); 
echo $passcode; //prints random number correctly

    $phone=$_GET['phone'];
    $email=$_GET['email'];
    $address=$_GET['address'];
    $documentid=$_GET['documentid'];

    $sql="insert into Transaction (date, amount, amountRs, passcode, isPaid, comment, clientid, receiverid) values ('$date','$amount','$amountRs','$passcode','no','$comment','$senderid[1]','$receiverid[1]')"; //stores "8388607" number in database

1 个答案:

答案 0 :(得分:0)

8388607mediumint(一个3字节的int)的最大值,这可能就是你的passcode列的类型(你传给它一个字符串,MySQL转换回数字......)。任何大于8388607的数字都将被裁剪为该值。在32位系统上,平均每256个只有1个随机数不会被裁剪。在64位系统上,每256 ^ 5 ...

成为一个随机数