可變我存儲在變量username
一個名字,想拉用戶的行信息,當我嘗試使用Ruby的MySQL查詢
result = dbh.query("SELECT * FROM maintab WHERE user = '#{username}'")
我沒有得到任何結果。如果我手動輸入用戶名,它會返回結果。如何格式化我的查詢,以便我可以使用變量?
可變我存儲在變量username
一個名字,想拉用戶的行信息,當我嘗試使用Ruby的MySQL查詢
result = dbh.query("SELECT * FROM maintab WHERE user = '#{username}'")
我沒有得到任何結果。如果我手動輸入用戶名,它會返回結果。如何格式化我的查詢,以便我可以使用變量?
嘗試調試這種方式:
username = "Peter" # any of your real name
result = dbh.query("SELECT * FROM maintab WHERE user = '#{username}'")
它應該工作。看起來你username
是nil
或blank
打開IRB並嘗試打印您擁有的內容。
#{}對於單引號與雙引號的轉義行爲如何?
這應該回答你的問題。
我不確定我是否可以嘗試IRB。我在遠程服務器上運行腳本。我把它找出它發現的行數,看它是否發現任何東西。我相信我正確地嘗試了逃脫的雙引號並達到了相同的結果。它很可能是我做錯了,雖然 – Arbiter 2011-04-01 07:29:08
當心http://en.wikipedia.org/wiki/SQL_injection – 2011-04-01 06:58:30
謝謝你的提醒,我一定會注入攻擊證明我所有的問題一旦我真的得到一切加工。 – Arbiter 2011-04-01 07:27:29
你確定'username'變量不是零或emty嗎? – fl00r 2011-04-01 07:34:41