此脚本使用MD5散列单词列表,并将其与纯文本一起存储在数据库中:
<?php
$dict = $_POST["dict"];
if (!isset($_POST['submit'])){
echo "<form method=\"post\" action=\"\">";
echo "Wordlist: <input type=\"text\" name=\"dict\"><br>";
echo "<input type=\"submit\" value=\"GET DIC\" name=\"submit\">";
echo "</form>";
}else{
$file = fopen($dict, "r");
while (!feof ($file)){
$load[$i] = fgets($file, 1024);
mysql_connect("xxx","xxx","xxx");
mysql_select_db("xxx");
$word = $load[$i];
$md5 = md5($word);
$lastid=mysql_insert_id();
$lastid=$lastid+1;
mysql_query("INSERT INTO md5 VALUES ('$lastid', '$md5', '$word');");
$i++;
$limit = count($load);
$width2 = $limit;
}
fclose($file);
echo "[+]Loaded ".$limit." word.";
echo "<br>Done.";
}
?>我在为每一行生成ID时遇到了困难。我希望脚本从存储在数据库中的最后一个数字开始ID的编号。
例如:
ID : MD5 : Country
1 : HASH: Africa
2 : HASH: Russia当我执行脚本时,我希望它从ID 3开始,并一直进行到列表完成为止。我的剧本怎么了?
发布于 2013-12-28 08:01:03
在表中,将ID字段设置为自动增量。然后从代码中删除整个ID部分,并让数据库处理它。
删除:$lastid=mysql_insert_id();
删除:$lastid=$lastid+1;
改为:mysql_query("INSERT INTO md5 (md5, country) VALUES ( '$md5', '$word');");
删除:$i++;
发布于 2013-12-28 08:05:30
我建议您使用自动增量,这将为您节省大量石灰。因为自动增量开始从前面的数字中添加,正如您所说的,它将是3。
发布于 2013-12-28 08:07:46
考虑使用准备好的语句(使用mysqli或PDO)。否则,如果任何单词都包含撇号,您就会陷入麻烦。此外,mysql_函数被取消,并将在未来被删除。
https://stackoverflow.com/questions/20812304
复制相似问题