PHP循环创建重复的数据库行

PHP循环创建重复的数据库行,php,mysql,Php,Mysql,我正在玩的是创建一个数据库,其中包含任何密码组合的明文和哈希值,但是当它们添加到数据库中时,我在进入下一个组合之前会得到许多重复的密码。。。有什么办法来阻止它吗 <?php $con=mysqli_connect("localhost","root","","test"); // Check connection if (mysqli_connect_errno()) { echo "Failed to connect to MySQL: " . mysqli_connect_er

我正在玩的是创建一个数据库,其中包含任何密码组合的明文和哈希值,但是当它们添加到数据库中时,我在进入下一个组合之前会得到许多重复的密码。。。有什么办法来阻止它吗

<?php
$con=mysqli_connect("localhost","root","","test");
// Check connection
if (mysqli_connect_errno())
{
    echo "Failed to connect to MySQL: " . mysqli_connect_error();
}

$numberof=0;
$alphabet = array("A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z");

for($i=0; $i<count($alphabet); $i++){
    for($j=0; $j<count($alphabet); $j++){
        for($k=0; $k<count($alphabet); $k++){
            for($l=0; $l<count($alphabet); $l++){
                $final = $alphabet[$i].$alphabet[$j].$alphabet[$k];
                $hash = md5($final);

                mysqli_query($con,"INSERT INTO hashes (plain, hash) VALUES ('$final', '$hash')");
            }
        }
    }
}
echo $numberof;
?>

您有四个嵌套的
for
循环,带有计数器
$i
$j
$k
$l
。但是,您在查询中使用的最后一个字符串只使用了
$i
$j
$k
,因此大约有26个重复。我假设您想将
$l
的值附加到字符串的末尾?

只需删除最后一个循环即可。我已将您的代码更新如下:

for($i=0; $i<count($alphabet); $i++){
    for($j=0; $j<count($alphabet); $j++){
        for($k=0; $k<count($alphabet); $k++){
            $final = $alphabet[$i].$alphabet[$j].$alphabet[$k];
            $hash = md5($final);
            mysqli_query($con,"INSERT INTO hashes (plain, hash) VALUES ('$final', '$hash')");           
        }
    }
}

for($i=0;$i)您没有将
$alphabet[$l]
添加到您的
$final
字符串中。作为一个信息:因为md5生成了一个固定长度的字符串,所以当然可能会重复哈希!它们不是重复的,只是缺少了第四个字母!duuuuuh!!:P谢谢,Hidde)要创建
$alphabet
数组,可以使用
范围
。像
范围('A','Z')
;第二个问题,在生成30秒后,它出现了一个错误,我猜是因为MySQL需要在30秒内完成任何事情。。。任何解决方法?对于PHP本身,您可以使用
ini_集('max_execution_time',###),但在承载此内容的服务器上可能存在其他限制。