将数据库行与提交的表单数据进行比较的最佳方法

时间:2010-10-13 02:59:01

标签: php sql mysql

我有一个包含8个字段和相应表单的表。提交表单时,我有记录的ID。检查任何一个字段中的数据是否已针对该行更改的最佳方法是什么?应该使用SQL路由

WHERE field1=$field1 AND field2=$field2 ..... AND ID=$ID

或拉动行并用循环比较每个字段?有没有其他方法可以达到这个目的?

谢谢!

1 个答案:

答案 0 :(得分:1)

取决于你需要做什么......

例如,有些人检查登录详细信息(假设所有变量都正确转义)。

SELECT `id`
  FROM `users`
 WHERE `username` = $username
   AND `password` = $password

但如果您想记录用户名错误密码错误,会发生什么? (当然你永远不应该告诉用户)。

在那种情况下,我会......

SELECT `id`, `password`
  FROM `users`
 WHERE `username` = $username

如果失败,则用户名不存在。然后,您可以在内部记录此信息。

然后,如果用户名存在,您可以(sha1($salt . $password)) === $passwordFromDb)进行记录,但密码不正确。

但是,如果您不需要此级别的逻辑,则只需在SQL查询中进行比较。它会更简洁,更快速地启动。