可能重复:
mysql_fetch_array() expects parameter 1 to be resource, boolean given in select
当我执行这个sql命令时:
$sql = "SELECT `id`, `password`, `salt` FROM `users` WHERE `username` = '".mysql_real_escape_string($_POST['name'])."'";
我收到此错误:
Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in /index.php on line 8
该行是我上面的SQL命令的mysql_fetch_assoc。
当我从SELECT中删除salt
时,它会起作用。
但是我需要选择salt
,所以我尝试在数据库和SQL突击队中重命名它。
但由于某种原因,这种情况并没有起作用。
然后我尝试删除数据库字段,并重新制作它。但仍然没有运气。
注意:突击队运行,但由于某种原因,它仍然会出现此错误..
我试图回应数据库中选择的一些信息,这很好。
它实际上会给我所有选定的信息,甚至salt
,但错误仍然显示..任何想法?
整页来源:
if (isset($_POST['login'])) {
$msg = "Brugernavn og kodeord passer ikke sammen.";
$sql = "SELECT `id`, `password`, `salt` FROM `users` WHERE `username` = '".mysql_real_escape_string($_POST['name'])."'";
//echo $sql;
$query = mysql_query($sql) or die(mysql_error());
if (mysql_num_rows($query)) {
while ($row = mysql_fetch_assoc($query)) {
//print_r($row);
/* echo "<pre>";
print_r($row);
echo "</pre>";*/
$password = md5(hash("sha512",mysql_real_escape_string($_POST['pass']), $row['salt']));
/* echo "<pre>";
echo $password;
echo "</pre>";
echo "<pre>";
echo $_POST['pass'];
echo "</pre>";*/
if ($password == $row['password']) {
$key = md5( rand(0,1000) );
//echo $key;
$sql = "UPDATE `users` SET `key` = '".$key."' WHERE `id` = '".$row['id']."'";
$query = mysql_query($sql);
//login success
$_SESSION['key'] = $key;
$_SESSION['id'] = $row['id'];
if (isset($_POST['remember']) && $_POST['remember'] == 1) {
$_COOKIE['key'] = $key;
$_COOKIE['id'] = $row['id'];
}
$msg = "Du er nu blevet logged ind.";
}
}
}
}