php - 读取文件内容并将字符串追加到它的SQL错误和mysql错误中

  显示原文与译文双语对照的内容
0 0

运行代码时,遇到以下 2个错误:

mysql_num_rows() 要求参数 1为资源,布尔类型

这是在文件的罕见行发生的。 其余的都很好。

在SQL语法中有错误;检查与你的MySQL服务器版本相对应的手册,以便在第1 行附近使用正确的语法

是的,它很脆弱,我知道。 这可以能是一些奇怪的charecters,但我可以以编辑它们,因为我将单词保存到md5ing中。

我假设 mysql_real_escape_string 会增加一些斜线,这会给我另一个md5值。 那么如何才能不同时编辑数据并保证脚本安全?

require ("dbconnect.php");
$list = fopen("huge.txt","r");
//convert and save to db
while(!feof($list))
 {
 $word = fgets($list);
//check if already in db.
 $check = mysql_query("SELECT id FROM `database` WHERE word='$word'") or 
 die(mysql_error());
 if (mysql_num_rows($check)==0)
 {
//rest of the codes

我添加 die() 只是为了了解错误。

时间:原作者:5个回答

0 0

对于问题 1,你应该简单,如果只有一个数据库连接,则不要将任何参数传递给 mysql_num_rows() 。

对于问题 2,只要将它的保存到数据库,则转义版本不应生成不同的散列。 将转义字符串保存到数据库后,保存的版本将有效丢失转义符。 这就是为什么在从数据库中提取转义值时没有看到"他们是"的原因。

基本上,当你初始创建哈希时,应该使用非转义版本的哈希输入,然后将文本版本保存到数据库。 然后可以从数据库中提取纯文本版本,再进行再散列,它应该创建匹配的哈希值。

原作者:
...