gpt4 book ai didi

php - MySQL 和 Do While 循环超时

转载 作者:行者123 更新时间:2023-11-29 07:58:28 25 4
gpt4 key购买 nike

这是超时,没有回显任何内容,也没有插入数据库。不明白为什么。有什么想法吗?

注意它只是生成一些代码数字,我知道它很简单且不安全,它仅在本地主机上完成并且连接值是正确的。

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>";
}

最佳答案

你:

  1. $i设置为0
  2. 生成一个随机数
  3. 执行 SQL 查询
  4. 检查查询执行是否返回false
  5. 只有当它确实存在并且适用更多条件时,您最终才会递增 $i
  6. 重复此操作,直到 $i 的增量超过 1999

问题是你的第四步总是成功。查询始终成功执行,mysql_query 始终返回结果集。您必须检查结果集以查看其中的内容,而不仅仅是针对 == false 进行测试。因此,$i 永远不会递增。

您还希望在所有这些 if 之外增加 $i,或者对无限循环进行一般保护。

关于php - MySQL 和 Do While 循环超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24488209/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com