我想使用变量string从数据库中获取数据。它显示错误
“where子句中的未知列'$ a'”
String a=request.getParameter("from"); ResultSet resultset= statement.executeQuery("select * from flight where f = $a") ;
答案 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
请注意,即使它是一个字符串,也不要在?
周围加上引号。 PreparedStatement
以SQL injection安全的方式处理数据库驱动程序级别的内容。