将ID号添加到数据库PHP

时间:2013-12-28 07:54:12

标签: php mysql

此脚本使用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开始并继续直到列表完成。我的剧本出了什么问题?

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_函数,将来也会删除它们。