【发布时间】:2017-01-02 18:47:05
【问题描述】:
我有两个具有相同属性的数据库表。我想使用从表 n 第二个更新表中读取的两个 sql 语句。
String tableName = "";
String value = request.getParameter("PageId");
if(value=="Alflah"){
tableName = "PARKTABLEONE";
}
if(value=="ParkN"){
tableName = "PARKTABLE";
}
一个陈述:
ResultSet rs= st.executeQuery("Select * From " +tableName+ " WHERE ID = \'"+ login + "\' ");
第二条语句:
String query = "update " + tableName + " set Place1 = ?, Place2 = ? WHERE ID = \'"+ login + "\'";
所以,我想在这里使用 TableName 变量。 例如,如果表名是 Alflah,则应从 alflah 读取 有没有可能?请纠正我的错误在哪里??
【问题讨论】:
-
那么问题出在哪里?尝试后会发生什么?
-
除此之外,您不应该像这样比较字符串 - 请参阅 stackoverflow.com/questions/513832/…
-
旁注:与
tableName无关,您的代码对SQL injection attacks 和无害的非攻击值开放。使用参数化查询。 -
@JonSkeet:很好看,这可能就是问题所在。我已经投票了,但你可以欺骗它。
-
运行此代码时出现语法错误:在第 1 行第 17 列遇到“WHERE”。根本原因