【问题标题】:Escaping single quotes in JDBC with MySql使用 MySql 在 JDBC 中转义单引号
【发布时间】:2012-07-25 19:32:35
【问题描述】:

我编写了代码来将来自新闻网站的一些标题存储在数据库中。但是,标题有时还会包含 (') 单引号和双引号,这会在尝试将其插入表格时导致错误。

解决这个问题的最佳方法是什么?

这是我的代码:

Statement st = con.createStatement();
int val = st.executeUpdate("INSERT into imageinfo(imageurl,title,headline,website) VALUES('"+imageurl+"','"+title+"','"+headline+"','"+website+"')");

【问题讨论】:

  • 试过这个吗? jguru.com/faq/view.jsp?EID=8881
  • 使用该方法的问题是我没有手动向数据库中插入一些东西。所以,我不能用反斜杠转义引号。

标签: mysql database jdbc


【解决方案1】:

您应该考虑使用 Prepared Statements 来预编译 SQL 查询。根据您的数据最初来自哪里,这也可以防止 SQL 注入。

使用准备好的语句的另一个优点是,您可以在每次执行时重复使用具有不同参数的同一语句。

【讨论】:

    【解决方案2】:

    我认为您可以使用反斜杠转义字符(在 sql 指令中)...

    另一种方法是将包含单引号的值用双引号括起来。

    【讨论】:

      猜你喜欢
      • 2011-06-13
      • 2017-11-21
      • 2010-10-27
      • 1970-01-01
      • 1970-01-01
      • 2018-12-01
      • 2013-01-27
      • 2022-09-29
      • 1970-01-01
      相关资源
      最近更新 更多