現在,我已經準備好的語句下面,它的工作原理:的Java的PreparedStatement:綁定參數HASHBYTES
SELECT email, password
FROM Professor
WHERE email = ? AND password = HASHBYTES('SHA1','" + password + "')
p.setString(1, email);
但是,當我嘗試參數由HASHBYTES加密值(在這種情況下,變量'密碼'),有某種閱讀/類型/轉換錯誤,不返回結果。這是不起作用的代碼:
SELECT email, password
FROM Professor
WHERE email = ? AND password = HASHBYTES('SHA1', ?)
p.setString(1, email);
p.setString(2, password);
我根本沒有收到任何錯誤信息;結果集在rowCount屬性中返回「-3」。我正在使用SQL Server。
通過'密碼'佔位符是這樣的:'?'也不工作。什麼是參數化這個查詢的正確方法?
你有什麼錯誤信息,如果有的話?你在和哪個SQL服務器通話? (MySQL,SQL Server,Oracle?) –
完全沒有錯誤信息。如果有幫助,結果集在rowCount屬性中返回「-3」。我正在使用SQL Server。 我會將此信息添加到問題中。 – KarasuEXE