我的表格中有一个类型为VARCHAR
的密码列SHA('mypassword')存储在其中。例如a382w8328ur
要登录,我必须将SHA('mypassword')与存储的VARCHAR值进行比较。
我的查询是:
$query = "SELECT * FROM mytable WHERE username='$username' AND password=SHA('$password');";
这转化为:
SELECT * FROM mytable WHERE username='$username' AND password= SHA('mypassword');
即
SELECT * FROM mytable WHERE username='$username' AND password= a382w8328ur;
但要比较,查询需要是:
SELECT * FROM mytable WHERE username='$username' AND password='a382w8328ur';
即。 ''需要SHA()
如果我使用:
SELECT * FROM mytable WHERE username='$username' AND password= 'SHA('mypassword')';
然后它将SHA('mypassword')视为字符串,并且找不到SHA的值('mypassword')
我的查询应该是什么?
P.S。我知道SHA()不是存储密码的方法,但我只是在学习。
我的插入查询工作正常:
INSERT INTO mytable(username, password) VALUES ('$username',SHA('$password'));";