函数内的mysql_result错误

时间:2013-05-06 22:34:49

标签: php html mysql

我使用一些函数来将用户登录到网站。我首先做了一个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。它导致登录无法正常工作。

我无法解决此警告。你们有没有看错呢?

非常感谢!

1 个答案:

答案 0 :(得分:2)

可能在查询中:

WHERE `username` == '$username'"

尝试将其更改为(删除extra =)):

return mysql_result(mysql_query("SELECT `id` FROM `users` WHERE `username` = '$username'"), 0, "id");

编辑:另外,如果这是一个新项目,请使用PDO而不是mysql_函数,请添加一些错误处理。