【发布时间】:2010-11-27 14:03:22
【问题描述】:
假设我有一个这样的 SQL 语句来检查用户登录:
SELECT * FROM users
WHERE username='test@example.com', password='abc123', expire_date>=NOW();
SQL 中有没有一种方法可以明确确定哪些 WHERE 条件失败,而不必将每个条件分成自己的查询并单独测试?
在这个具体的例子中,它允许开发者准确地告诉用户他们尝试登录失败的原因。
出于我的目的,我使用的是 PHP/MySQL。
【问题讨论】:
-
expire_date 的时间部分可能小于 NOW() 中返回的时间,导致查询无法返回您期望的结果。
-
谢谢,我意识到,尽管名称有点误导,但该字段确实存储了时间。
-
你会把失败的原因传递给用户吗?这可能会让黑客更容易获得访问权限。
标签: php sql mysql conditional-statements where