哪一部分(S)比方说,我有这样的SQL语句来检查用户登录:确定的WHERE语句失败
SELECT * FROM users
WHERE username='[email protected]', password='abc123', expire_date>=NOW();
是否有SQL的方式来确定具体哪些WHERE条件达不到,不必须将每个条件分解为自己的查询并单独测试?
在这个特定的例子中,开发人员可以准确地告诉用户他们尝试登录失败的原因。
为了我的目的,我使用的是PHP/MySQL。
expire_date的时间部分可能小于NOW()中返回的值,导致查询不返回您期望的结果。 – 2009-09-11 17:17:20
谢谢,我意识到,即使名称有些误导,该字段也会存储时间。 – macinjosh 2009-09-11 17:19:37
你打算把失败的原因传给用户吗?这可能会让黑客更容易获得访问权限。 – 2009-09-11 17:25:54