3

我正在使用 Java 将一些数据插入 mysql 。但是在数据中加入撇号(标点符号)(接近每周跟踪器表明工作增长)它给了我 MySQLSyntaxErrorException。请给我适当的解决方案来处理它

代码我有 isa

void insert(String a1,String a2, String a3) {
  String nt = a2;
  String pt = a3;
  String tb = a1; 
  query = "insert into "+tb+"(head,des) values('"+nt+"','"+pt+"')"; 
  try {
    stmt.executeUpdate(query);
    System.out.println("inserted"); //con.close();
  } catch (SQLException ex) {
    // Logger.getLogger(conec.class.getName()).log(Level.SEVERE, null, ex);
    ex.printStackTrace();
  }
}
4

2 回答 2

6

使用查询参数,而不是字符串连接。这将允许数据库驱动程序格式化您发送到数据库服务器的值,而不是自己重新发明这个轮子。

String sql = "insert into ... values (?, ?)";
PreparedStatement stmt = conn.prepareStatement(sql);
stmt.setString(1, nt);
stmt.setString(2, pt);
stmt.executeUpdate();
于 2012-05-18T15:35:01.840 回答
1
query = "insert into "+tb+"(head,des) values('"+nt+"','"+pt+"')";

应该

query = "insert into "+tb+" (head, des) values ('"+nt+"','"+pt+"')";

请进行这些更改,如果仍有问题,请告诉我....

于 2012-05-18T15:34:29.843 回答