我正在尝试查询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();

10-08 16:17