當我想檢查HTML表單中的值是否等於數據庫中的值時(它會這樣做),它將返回false而不是true。如何在Ruby中使用數據庫(SQLite3)值
我需要更多代碼嗎?
代碼:
password = params[:password]
password_db = @db.execute('SELECT password FROM dtbs WHERE username=?', [params[:username]])
puts password #returns llol123
puts password_db #returns llol123
check = (password==password_db)
puts check #returns false
這可能是因爲您在密碼字符串之前或之後在數據庫中有一個空白符號。即代替[llol123]你有[llol123]或[llol123]。這可能會導致這個問題。 嘗試放入「[#{password_db}]」並放入「[#{password}]」以查看是否有任何不需要的空格。 – Valdis
我建議使用ORM而不是手動編寫查詢。 [Sequel](http://sequel.jeremyevans.net)是我的建議。一個好的ORM允許你專注於代碼並讓它處理查詢的生成。如果您想更改爲其他DBM,則只需更改連接信息,ORM將自動爲您處理其餘部分。 –