我使用一些函数来将用户登录到网站。我首先做了一个login(),看起来像这样:
function login($username, $password){
$id = user_id_from_username($username);
$username = sanitize($username);
$password = md5($password);
return (mysql_result(mysql_query("SELECT COUNT(`id`) FROM `users` WHERE `username` = '$username' AND `password` = '$password'"), 0) == 1) ? $id : false;
}
正如你在第二行看到的那样,它调用另一个函数user_id_from_username。看起来像这样:
function user_id_from_username($username) {
$username = sanitize($username);
return mysql_result(mysql_query("SELECT `id` FROM `users` WHERE `username` == '$username'"), 0, `id`);
}
现在当我使用登录功能时,我收到一条警告,说明如下:
警告:mysql_result():提供的参数不是第62行的... / users.php中的有效MySQL结果资源
它指的是user_id_from_username的return语句中的mysql_result。它导致登录无法正常工作。
我无法解决此警告。你们有没有看错呢?
非常感谢!
答案 0 :(得分:2)
可能在查询中:
WHERE `username` == '$username'"
尝试将其更改为(删除extra =)):
return mysql_result(mysql_query("SELECT `id` FROM `users` WHERE `username` = '$username'"), 0, "id");
编辑:另外,如果这是一个新项目,请使用PDO而不是mysql_函数,请添加一些错误处理。