我想将数据库中明文形式的字符串与散列为MD5()
的字符串进行比较。我试图做这样的事情:当我试图在SQL中进行散列时出现错误
SELECT member_email, is_validated FROM members
WHERE CONVERT(VARCHAR(32), HASHBYTES('MD5', 'member_email'), 2) = '".$_GET['vy']."'
AND is_validated = '0'
但我得到You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'VARCHAR(32), HASHBYTES('MD5', 'member_email'), 2) = '' AND is_valida' at line 2
。如果我删除''member_email'
因此它的HASHBYTES('MD5', member_email)
我会得到相同的错误信息。怎么了?我是否必须将MD5哈希放在数据库中,以便将其与$_GET['vy']
中的相同MD5哈希进行比较?
在此先感谢!
不是lenght?如果你改变(转换(255)(varchar,GETDATE(),102)) – 2012-03-28 17:33:28