3

我一直在使用各种在线教程涉足登录脚本(PHP 和 MySQL)。今天我很好奇哪种方式最好检查用户名和密码是否有效。到目前为止,我读过的每个教程都会检查返回的行数,如下所示:

SELECT stuff FROM users WHERE username = input_username AND password = input_password
count the rows returned
if rows equal to one
login
else
display error message

我只是在想使用 COUNT 并检查该值是否同样可行,如下所示:

SELECT COUNT(stuff) FROM users WHERE username = input_username AND password = input_password
if returned value equal to one
login
else
display error message

我都试过了,两者都返回了预期的结果。那么有什么理由选择一个而不是另一个吗?

4

2 回答 2

3

它们都是有效的方法。当您需要有关用户的其他信息(例如,他们的 UserID)时,您将使用前者。

于 2012-05-30T17:13:36.073 回答
1

如果您不需要任何存储的信息,则绝对应该使用第二条 SQL 语句。COUNT()对性能更好。尽管人们倾向于坚持第一个的原因是因为如果返回的行是正数,他们将需要有关用户的信息。

于 2012-05-30T17:15:12.443 回答