【问题标题】:Can we run a loop in a column of mysql table? [closed]我们可以在 mysql 表的列中运行循环吗? [关闭]
【发布时间】:2012-12-11 10:32:14
【问题描述】:

通过php,我必须输入用户名,然后在mysql表的用户名列中搜索。

如果用户名匹配,它会寻找匹配同一行的密码,那么是否可以运行一个尝试匹配数据的循环?

如果是,它应该是什么样的?如果没有,请告诉我一些替代方案。

【问题讨论】:

  • 我很困惑为什么你需要运行一个循环
  • 我需要运行一个循环来检查用户名是否存在,如果我的数据库中不存在该用户名,它将去其他地方并显示错误的用户名,所以可以这样做吗?
  • 当您尝试创建登录时,请阅读转义和 SQL 注入。否则肯定会很脆弱。

标签: php mysql loops facebook-login login-control


【解决方案1】:

您需要了解 SQL 查询,我真的没有比这更好的答案了。 SQL 用于从数据库中选择数据,您可以使用如下命令:

Select employeeID from table where username = 'user' and password = 'password'

如果您获得创纪录的回报,则表示匹配。本质上,如果您执行“给我与此查询匹配的数据”之类的查询,数据库服务器会遍历所有 dta 并尝试查找匹配的任何行。因为它已经遍历了所有的数据,所以不需要手动。

再次:请学习一些有关 SQL 的知识。通过您提出的问题,很明显您缺少一个非常基本的理解。这会浪费你的时间(尝试无用的事情)并可能伤害他人(如果你曾经让你的代码在公共场合运行)。

【讨论】:

  • 如果用户名不存在如何显示'用户名在数据库中不存在'语句
  • @user1892302 - 如果用户名不存在,那么您将不会得到任何行。如果您正在使用MySQL 数据库,您可以使用mysql_num_rows() 函数检查行数
  • @Pankit Kapadia 嘿会死,如果用户名不匹配,finctn 会完成这项工作吗?
  • @user1892302 - die() 函数停止执行脚本。
  • @user1892302 - 看看this link
【解决方案2】:

你可以这样写一个 SQL 请求:

SELECT *
FROM Users
WHERE passwd = sr8stk23kel796ki345k54k2

【讨论】:

  • 当然,sr8stk23kel796ki345k54k2 不是我的 md5 或 sha* 加密密码 ;)
【解决方案3】:
$query = "SELECT * FROM username WHERE `name` = '$variable_containing_name' AND `password` = '$password'"

如果返回行,则找到匹配项 其中namepassword 是列名,您需要两个包含要搜索的用户名和密码的变量。 你不需要循环 php sql 就可以完成这项工作

【讨论】:

  • 如果用户名不存在如何显示'用户名在数据库中不存在'语句
猜你喜欢
  • 2021-05-15
  • 2020-09-09
  • 2015-06-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多