此脚本使用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开始并继续直到列表完成。我的剧本出了什么问题?
答案 0 :(得分:4)
在表格中,将ID字段设置为自动增量。然后从代码中删除整个ID部分,让数据库处理它
删除:$lastid=mysql_insert_id();
删除:$lastid=$lastid+1;
更改为:mysql_query("INSERT INTO md5 (md5, country) VALUES ( '$md5', '$word');");
删除:$ i ++;
答案 1 :(得分:1)
我建议您使用自动增量,这将为您节省大量石灰。 因为自动增量开始从前一个数字添加,因为你说它将是3.
答案 2 :(得分:0)
考虑使用预准备语句(使用mysqli或PDO)。否则,如果任何单词包含撇号,您将遇到麻烦。 此外,不推荐使用mysql_函数,将来也会删除它们。