0

我正在尝试针对 2 个不同的表检查登录凭据,并且查询不断返回说用户不存在。我会试着解释我在做什么......

我有一个名为customers只存储客户数据的表。我有另一个名为admins仅存储管理员凭据的表。

我希望管理员能够使用与客户相同的登录屏幕登录网站。一旦他们登录,系统就会知道他们是管理员,并显示适当的小部件来管理网站上的产品数据。

我在表中插入了一个虚拟用户admins并运行了这个查询:

    $sql = mysql_query("SELECT EXISTS(
    SELECT 1 FROM `customers` WHERE `email` = 'johndeere@whatever.com' AND `password` = 'password'
    UNION
    SELECT 1 FROM `admins` WHERE `Email` = 'johndeere@whatever.com' AND `Password` = 'password'
    )");
    $result = @mysql_query($sql);
    if(!$result) {
        echo "User doesn't exist!";
    } else {
        echo "User exists!";
    }

admins当我知道他们在表中的事实时,这个查询回来说“用户不存在” 。我确定我错过了一些非常简单的东西,并希望有人可以帮助我解决它是什么。

我对 mySQL 和 PHP 还是很陌生,但我学得很快。到目前为止,这是我无法解决或找到答案的唯一问题。非常感谢您的帮助。提前致谢。

4

1 回答 1

0

你为什么不使用,

SELECT 1 from dual where EXISTS(
    SELECT 1 FROM `customers` WHERE `email` = 'johndeere@whatever.com' AND `password` = 'password'
    UNION
    SELECT 1 FROM `admins` WHERE `Email` = 'johndeere@whatever.com' AND `Password` = 'password'
);

您的查询将返回 0(false)、1(true),如果您使用原始查询,则需要检查这些值

您不能使用!$result它,因为它只告诉天气查询是否合法。您需要检索数据。

参考这个:http ://www.php.net/manual/en/function.mysql-query.php

于 2012-08-29T18:33:47.503 回答