2012-03-28 76 views
0

我想將數據庫中明文形式的字符串與散列爲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哈希進行比較?

在此先感謝!

+0

不是lenght?如果你改變(轉換(255)(varchar,GETDATE(),102)) – 2012-03-28 17:33:28

回答

0

MySQL有沒有HASHBYTES()http://dev.mysql.com/doc/refman/5.6/en/encryption-functions.html

你試過:

SELECT member_email, is_validated FROM members 
WHERE CONVERT(VARCHAR(32), MD5(member_email), 2) = '".$_GET['vy']."' 
AND is_validated = '0' 
+0

我注意到'WHERE MD5(member_email)='「。$ _ GET ['vy']。」'''更正確:)谷歌搜索爲我的問題可能的答案,但我沒有找到任何解決方案。非常感謝您的鏈接和您的答案! – Erik 2012-03-28 19:11:19

相關問題