Mysql 每当我提交表单时都会出现sql错误
我试图从mySQL数据库中获取数据并将其存储到我的arrayList中。然而,每当我运行这组代码时,就会出现这个错误 您的SQL语法有错误;请查看与MySQL服务器版本对应的手册,以获取在第1行的“displayname”附近使用的正确语法,如“%A%” 但是,我没有使用任何关键字,我为通配符操作员提供了单引号。我在sql语句中哪里做错了或漏掉了Mysql 每当我提交表单时都会出现sql错误,mysql,sql,servlets,Mysql,Sql,Servlets,我试图从mySQL数据库中获取数据并将其存储到我的arrayList中。然而,每当我运行这组代码时,就会出现这个错误 您的SQL语法有错误;请查看与MySQL服务器版本对应的手册,以获取在第1行的“displayname”附近使用的正确语法,如“%A%” 但是,我没有使用任何关键字,我为通配符操作员提供了单引号。我在sql语句中哪里做错了或漏掉了 String sql = "SELECT * FROM azq.registration WHERE userId NOT IN (SELECT fr
String sql = "SELECT * FROM azq.registration WHERE userId NOT IN (SELECT friendId FROM azq.friendlist WHERE userId ="
+ session.getAttribute("userId")
+ ") AND userId !="
+ session.getAttribute("userId")
+ "AND displayname LIKE '%" + searchText + "%'";
// create the java statement
Statement st = conn.createStatement();
// execute the query, and get a java resultset
ResultSet rs = st.executeQuery(sql);
// iterate through the java resultset
while (rs.next()) {
Friends newList = new Friends();
newList.setFirstName(rs.getString("firstName"));
newList.setLastName(rs.getString("lastName"));
newList.setUserId(rs.getString("userId"));
newList.setDisplayname(rs.getString("displayname"));
resultList.add(newList);
}
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
您必须在
和之前添加一个空格:
+ session.getAttribute("userId")
+ " AND displayname LIKE '%" + searchText + "%'";
您必须在和之前添加一个空格:
+ session.getAttribute("userId")
+ " AND displayname LIKE '%" + searchText + "%'";
您忘记了一个空格:
+ ") AND userId !="
+ session.getAttribute("userId")
+ "AND displayname LIKE '%" + searchText + "%'";
^---here
所以你在生成
... userID != fooAND displayname
如果您查看生成的sql
,就会看到这一点。您忘记了一个空格:
+ ") AND userId !="
+ session.getAttribute("userId")
+ "AND displayname LIKE '%" + searchText + "%'";
^---here
所以你在生成
... userID != fooAND displayname
如果您查看生成的sql
,就会看到这一点。在第2个空格之前添加空格,并将其转换为参数化查询。在第2个空格之前添加空格,并将其转换为参数化查询。