'where子句'中的未知列'$ a'

时间:2016-09-23 06:37:25

标签: java mysql jdbc

我想使用变量string从数据库中获取数据。它显示错误

“where子句中的未知列'$ a'”

String a=request.getParameter("from");

ResultSet resultset=  statement.executeQuery("select * from flight where f = $a") ; 

1 个答案:

答案 0 :(得分:1)

如果要使用a变量的值$a,则需要使用预准备语句并填写:

String a = request.getParameter("from");
PreparedStatement ps = connection.prepareStatement( // Create a prepared statement
    "select * from flight where f = ?"              // Using ? for where the
);                                                  // parameter goes
ps.setString(1, a);                                 // Fill in the value (they
                                                    // start a 1, oddly)
ResultSet resultset = ps.executeQuery();            // Execute the query

请注意,即使它是一个字符串,也不要在?周围加上引号。 PreparedStatementSQL injection安全的方式处理数据库驱动程序级别的内容。