2

更新クエリを使用して、html ファイルStringを MySQL DB に挿入したいと考えています。私はこれを試しました:

Statement st = connection.createStatement();
String query = "UPDATE orders SET status='ready', html='"+html+"' WHERE id='123'";
int num = st.executeUpdate(query);

しかし、次の例外が発生します。

MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'zglosBladWindow').ck_window.showCenter('this');" href="#">zg?o? b??d na stronie<' at line 1

これは HTML 内""のどこかにあります。多くの特殊文字と引用符も含まれているため、おそらく html を引用して挿入することはできません。どうすれば挿入できますか? どういうわけかエンコードする必要がありますか?

4

4 に答える 4

7

Statement ではなくPreparedStatementを使用することをお勧めします。

String query = "UPDATE orders SET status=?, html=? WHERE id=?";
PreparedStatement stmnt = conn.PreparedStatement(query);
stmnt.setString(1, yourtext);
....
int num = st.executeUpdate();
于 2013-01-17T11:24:29.513 に答える
0

PreparedStatementHTML 文字列には引用符または二重引用符が含まれている可能性があるため、コンストラクトを使用する必要があります。詳細はこちら

于 2013-01-17T11:24:28.157 に答える
0

おそらく、このようなものを使用する必要があります。

StringBuilder contentBuilder = new StringBuilder();
try {
BufferedReader in = new BufferedReader(new FileReader("mypage.html"));
String str;
while ((str = in.readLine()) != null) {
    contentBuilder.append(str);
}
in.close();
} catch (IOException e) {
}
String content = contentBuilder.toString();
于 2013-01-17T11:29:20.980 に答える
0

PreparedStatement を使用する必要がありますが、ファイルを保存する代わりに、MySQL にパスを保存したいと思います。

于 2013-01-17T11:28:24.940 に答える