com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:未知列'兄弟'在' where子句'

时间:2015-08-18 13:49:08

标签: java mysql jdbc

我试图查询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是commun的价值。

我也试过PreparedStatement,但这也给了我同样的例外。

但是当我在MySQL命令行中进行查询时:

select * from file_post where gas_key='bro';

它非常完美,并返回确切的数据。

我无法弄清楚为什么在Java类中使用相同的查询时它会给我异常。

2 个答案:

答案 0 :(得分:1)

当您与"不匹配时,通常会发生此异常,以避免此类问题使用PreparedStatement

PreparedStatement st = con.prepareStatement("SELECT * FROM file_post WHERE gas_key=?");
st.setString(1,commun);
rs = st.executeQuery();

答案 1 :(得分:0)

您可以在设置变量后尝试打印preparedStatement ...只是为了检查正在构建的查询......

的System.out.println(preparedStatement时);

这里的fp是什么?结果集?