PHP表单-哪个输入不正确


PHP Forms - Which input is incorrect?

如果我有一个查询,

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 = ?

如果找不到记录,则用户名不存在。如果是,您现在可以比较密码。