가능한 중복 :
Warning: mysql_fetch_* expects parameter 1 to be resource, boolean given errorPHP 및 MySQL을 - mysqli_free_result은() 매개 변수 (1) 부울 라인에 주어진 mysqli_result을 기대 (110)
라인 (110)은 mysqli_free_result($r);
누군가가 내가 '무엇을 설명 할 수있다 여기서 잘못하고 어떻게 해결할 수 있습니까?
다음은 코드의 일부입니다.
if(isset($user_pass) && ($user_pass == TRUE) && !empty($salt)) {
$q = "SELECT users.user_id, users.first_name, users.user_level FROM users JOIN contact_info ON contact_info.user_id = users.user_id WHERE (contact_info.email = '" . $e . "' OR users.username = '" . $e . "') AND users.password = '" . $sha512 . "' AND users.active IS NULL";
$r = mysqli_query ($dbc, $q) or trigger_error("Query: $q\n<br />MySQL Error: " . mysqli_error($dbc));
while($row = mysqli_fetch_array($r)){
$approved = $row['user_id'];
}
if ((@mysqli_num_rows($r) == 1 && $approved == 2)) {
$_SESSION = mysqli_fetch_array ($r, MYSQLI_ASSOC);
// check if user is logged in then update the old login date
$u = "UPDATE users JOIN contact_info ON contact_info.user_id = users.user_id SET users.last_login = NOW(), users.deletion = 0, users.deletion_date = NULL WHERE (contact_info.email = '" . $e . "' OR users.username = '" . $e . "') AND users.password = '" . $sha512 . "' AND users.active IS NULL";
// save the info to the database
$r = mysqli_query ($dbc, $u);
mysqli_free_result($r);
mysqli_close($dbc);
exit();
} else {
echo 'Error;
}
} else {
echo 'Error';
}
+1이 쿼리는 전자 메일 필드의 악의적 인 입력에 매우 취약합니다. – Fenton