【发布时间】:2017-08-08 06:29:45
【问题描述】:
当我想检查 HTML 表单中的值是否等于数据库中的值(确实如此)时,它返回 false 而不是 true。
我需要更多代码吗?
代码:
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]。这可能会导致这个问题。尝试 puts "[#{password_db}]" 和 puts "[#{password}]" 看看你是否有任何不需要的空格。
-
我建议使用 ORM 而不是手动编写查询。 Sequel 是我的推荐。一个好的 ORM 可以让你专注于代码并让它处理查询的生成。如果您想更改为不同的 DBM,您只需更改连接信息,ORM 会自动为您处理其余部分。