我需要创建一个while循环来检查$ key是否在数据库中,如果它是一个新密钥并再次检查。它似乎是代码的一个简单部分,但我无法让它工作。
我一直在谷歌搜索并尝试不同的解决方案几个小时但没有运气。
$key = 'aa';//RandomString(30);
$result = mysql_query("SELECT column FROM table WHERE column = '$key'");
$j = 1;
while(mysql_num_rows($result)==1){
$key = 'aa'.$j;//RandomString(30);
$j++;
}
答案 0 :(得分:4)
您需要在mysql_query();
循环中包含while
。您目前正在这样做的方式是每次只查询一次mysql数据库时检查相同的结果。
$key = 'aa';//RandomString(30);
$j = 1;
$found = true;
while($found == true){
$result = mysql_query("SELECT column FROM table WHERE column = '$key'");
if(mysql_num_rows($result)==0) {
$found = false;
} else {
$key = 'aa'.$j;//RandomString(30);
$j++;
}
}
Fyi,mysql_
函数已弃用,因此您应尝试迁移到mysqli或pdo。
如果在这种情况下你有很多以aa
开头的条目,这也会变得效率低下。最好找到以aa
开头的所有条目,然后找到最后一个并将数字加1。这样你可以用一个查询而不是数百或数千个查询。