PHP缓存RAND()变量值

PHP缓存RAND()变量值,php,mysql,caching,random,auto-generate,Php,Mysql,Caching,Random,Auto Generate,我在index.php文件中有以下代码: 显然,它随机生成值并将其作为记录插入MyISAM数据库表sInstance中 问题:生成并插入约1000条记录后,几乎不可能生成新记录(具有唯一的值集)。每个新记录都是一些旧记录的克隆(具有相同的p1-p2-p3-p4值) 问题:如何避免这种情况并使php生成唯一的记录 线索:这是PHP的服务器端问题,可能它会以某种方式缓存通过RAND()函数设置的值。问题既没有连接到浏览器,也没有连接到mysql本身。不确定您是否没有做错什么,但是重置随机种子生成器可

我在index.php文件中有以下代码:

显然,它随机生成值并将其作为记录插入MyISAM数据库表sInstance中

问题:生成并插入约1000条记录后,几乎不可能生成新记录(具有唯一的值集)。每个新记录都是一些旧记录的克隆(具有相同的p1-p2-p3-p4值)

问题:如何避免这种情况并使php生成唯一的记录


线索:这是PHP的服务器端问题,可能它会以某种方式缓存通过RAND()函数设置的值。问题既没有连接到浏览器,也没有连接到mysql本身。

不确定您是否没有做错什么,但是重置随机种子生成器可以做到这一点:

试试mt_rand()

如果这不起作用,您可以添加数据库架构吗?

rand()的种子设定使用服务器上的当前时间戳进行,因此,当您快速生成随机值时,您可能会得到相同的种子设定用于创建随机值

你确定它不会立即发生,而且只会在1000条左右的记录之后发生吗


你可以考虑使用一个更好的随机数生成器,比如

i Woudl建议每次使用RAND()来代替这些数字是多么的独特?它们应该用于加密操作吗?是的,当有大约1000条记录时就发生了。我还尝试在一个周期中生成记录(for、while-等),并得到了相同的结果。我还尝试重置PHP缓存、MySQL缓存,并做了很多其他不相关的工作。兰德先生按我的意愿为我工作,谢谢。
include('db_connect.php'); //Here's the script that provides mysql connection to a database

$a = round(rand(1,100));
$b = round(rand(160,202));
$c = round(rand(50,110));
$d = round(rand(1,99999));

$sql = "INSERT INTO sInstance (p1,p2,p3,p4) VALUES ('".$a."','".$b."','".$c."','".$d."')";
$result = mysql_query($sql) or die(mysql_error());