如果我有疑问,
SELECT (...) FROM User WHERE Username = (...) AND Password = (...);
并且用户输入了无效的用户名,有没有办法确定它是不正确的用户名?
这样我就可以向用户提供更具体的错误消息,例如“用户不存在”等......
如果我有疑问,
SELECT (...) FROM User WHERE Username = (...) AND Password = (...);
并且用户输入了无效的用户名,有没有办法确定它是不正确的用户名?
这样我就可以向用户提供更具体的错误消息,例如“用户不存在”等......
SELECT COUNT(*) AS `count` FROM `User` WHERE `Username` = ...;
if( $result['count'] < 1 )
{
// no user
}
// repeat for pass.
如果密码匹配,我会选择用户名,然后选择一个位字段。所以从 WHERE 子句中删除密码部分,并将其移动到 SELECT 子句中。然后,没有匹配的行意味着用户名无效,如果有一行,则需要检查该字段以查看密码是否匹配。
SELECT (...) IF(password=?, 1, 0) as success
FROM User
WHERE Username = ?
如果你坚持这样做,你可以这样做:
SELECT password FROM user WHERE username = ?
如果没有找到记录,则用户名不存在。如果是这样,您现在可以比较密码。