stmt="SELECT * FROM people_?"
stmt.setString(1, year);
我嘗試調用的表名是基於year(people_2009,people_2010等),我將年設置爲java變量。我知道上面的代碼不會工作,因爲它會在今年發表引號,但是有沒有辦法在表名上附加字符串,或者有任何其他方式來解決這個問題?將字符串附加到SQL表中
stmt="SELECT * FROM people_?"
stmt.setString(1, year);
我嘗試調用的表名是基於year(people_2009,people_2010等),我將年設置爲java變量。我知道上面的代碼不會工作,因爲它會在今年發表引號,但是有沒有辦法在表名上附加字符串,或者有任何其他方式來解決這個問題?將字符串附加到SQL表中
你可能只是這樣做。
stmt="SELECT * FROM people_" + year;
哪個應該可以正常工作。只需確保在追加年份變量之前正確地驗證該年份變量,否則最終會出現SQL注入問題。如果year的類型爲int,那麼不需要驗證來停止sql注入,但是您可能想驗證範圍以確保表存在。
這應該工作:
String stmt = "SELECT * FROM people_" + year;
我有一年的字符串,這是行得通的,但我將如何繼續與我的SELECT語句,例如,如果我想添加一個WHERE子句,而不是。我會繼續從下一個引號開始,而不是結束語句嗎? – Dan 2011-04-18 14:55:47