1

我已经查看了很多次代码并重写了它,但仍然无法弄清楚如何修复错误。

有6-10行;

function login_check ($email, $password) {
$email = mysql_real_escape_string ($email);
$login_query = mysql_query("SELECT COUNT(`user_id`) as `count`,`user_id` FROM `users` WHERE `email`='$email' AND `password`='".md5($password)."'");
return (mysql_result($login_query, 0) == 1) ? mysql_result($login_query, 0, 'user_id') : false;

}

重写代码;

function login_check ($email, $password) {
    $email = mysql_real_escape_string($email);
    $login_query = mysql_query("SELECT COUNT(`user_id`) as `count`, `user_id` FROM `users` WHERE `email`='$email' AND `password`='".md5($password)."'");
    return (mysql_result($login_query, 0) == 1) ? mysql_result($login_query, 0, 'user_id') : false; 
}
4

2 回答 2

0

您的 SQL 语句需要一个 GROUP BY 子句。

"SELECT COUNT(`user_id`) as `count`,`user_id` 
    FROM `users` 
    WHERE `email`='$email' 
        AND `password`='".md5($password)."'
    GROUP BY `user_id`"
于 2012-04-20T20:37:41.167 回答
0

由于传递的参数,这似乎是一个错误。我可以在这里想到几个解决方案。1. 在将参数传递给查询之前回显参数。2. 也可以在 MySQL 上尝试 SQL 查询,看看你是否得到了你想要的结果。

于 2012-04-20T20:40:14.193 回答