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

我建议您使用PreparedStatement而不是 Statement。

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

您应该使用PreparedStatement构造,因为您的 HTML 字符串可能包含引号或双引号。在这里阅读更多

于 2013-01-17T11:24:28.157 回答
0

您应该使用 PreparedStatement,但我宁愿将路径保存在 MySQL 中,而不是保存文件。

于 2013-01-17T11:28:24.940 回答
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 回答