我正在尝试查询MySQL数据库
statement = conn.createStatement();
String sql = "select * from file_post where gas_key='"+commun+"'";
fp =statement.executeQuery(sql);
commun
在哪里String commun= (String) session.getAttribute("commun");
我遇到异常:
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:“ where子句”中的未知“ bro”列
bro
是commun的值。我也尝试了
PreparedStatement
,但这也给了我同样的例外。但是当我在MySQL命令行中进行查询时:
select * from file_post where gas_key='bro';
在那里很完美,并返回准确的数据。
我不知道为什么在Java类中使用相同的查询时会给我例外。
最佳答案
当您与"
不匹配时,通常会发生此异常,为避免此类问题,请使用PreparedStatement
PreparedStatement st = con.prepareStatement("SELECT * FROM file_post WHERE gas_key=?");
st.setString(1,commun);
rs = st.executeQuery();