3

Java を使用して mysql にデータを挿入しています。しかし、データにアポストロフィ(句読点)を入れると(nearの毎週のトラッカーは仕事の成長を示唆しています)、MySQLSyntaxErrorExceptionが発生します。それを処理するための適切な解決策を教えてください

私が持っているコード

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 に答える