这是超时而不回显任何内容以及不插入数据库。不明白为什么。有什么想法吗?
注意只需生成一些代码,我就知道它很简单且不安全,它是在localhost上完成的只有连接值才是合理的。
function populate_codes(){
$con = mysql_connect(dbhost,dbuser,dbpass);
mysql_select_db(dbname);
$i = 0;
do{
$code = rand(10000000,99999999);
$check = mysql_query('SELECT * FROM '.dbcodetable.' WHERE code = $code',$con);
if(!$check){
$insertcode = mysql_query('INSERT INTO '.dbcodetable.' (code,status) VALUES ($code,1)',$con);
if($insertcode){
echo $i.' - '.$code.'<br />';
$i++;
}
}
}
while($i <= 1999);
echo "------------------------<br /><strong>Complete</strong>";
}
答案 0 :(得分:2)
您:
$i
设为0 false
$i
$i
增加到超过1999 问题在于您的第4步始终成功。查询始终成功执行,mysql_query
始终返回结果集。您必须检查结果集以查看其中的内容,而不仅仅是针对== false
进行测试。因此,$i
永不递增。
您还希望在所有ifs之外增加$i
,或者对无限循环进行一般性保护。