我在Laravel PHP应用程序中有这个查询,但是,我发现这个问题主要与MySQL而不是Laravel或PHP有关。这是查询:
SELECT id FROM users WHERE MD5('email')='9e1af6d8046e217984ea76bf489a64eb' AND password_md5='f3617237ac21562663a40608a85ea38d';
我只提供了电子邮件的md5哈希以及密码(也是md5-hashed),并且需要从{{1}中检索用户的id
数据库。数据库中的MySQL
不哈希,这就是我在声明中发现需要email
的原因。但是,上面的查询在返回一个查询时不会返回任何结果。 是的,我确保哈希输入正确。
我在尝试解决此问题时发现,MD5()
未返回与实际电子邮件地址相同的MD5哈希值。我想知道我是否误用了SELECT MD5('users.email')
函数,或者MySQL是否添加了任何东西,所以散列与我的PHP计算的散列不同。
答案 0 :(得分:1)
如果它是列标识符,请删除email
周围的引号。您只需要为字符串文字使用引号。
SELECT id FROM users WHERE MD5(email)='9e1af6d8046e217984ea76bf489a64eb' AND password_md5='f3617237ac21562663a40608a85ea38d';