我想使用準備好的語句來設置一個表名來選擇數據,但是當我執行查詢時我總是收到一個錯誤。使用準備好的語句來設置表名
錯誤和示例代碼顯示在下面。
[Microsoft][ODBC Microsoft Access Driver] Parameter 'Pa_RaM000' specified where a table name is required.
private String query1 = "SELECT plantID, edrman, plant, vaxnode FROM [?]"; //?=date
public Execute(String reportDate){
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection conn = DriverManager.getConnection(Display.DB_MERC);
PreparedStatement st = conn.prepareStatement(query1);
st.setString(1, reportDate);
ResultSet rs = st.executeQuery();
想什麼可能會導致此?
是的,輸入消毒,以防止SQL注入! – 2012-07-30 13:02:25
如果您需要將不同的表名替換爲具有相同結構的查詢,則會指向數據庫設計中的缺陷。至少它指向具有相同關係屬性的多個表。將其標準化爲具有「主題」列的單個表格。 – 2015-11-12 21:43:43