【问题标题】:AWS mysql multiquery syntax errorAWS mysql 多查询语法错误
【发布时间】:2017-08-02 11:41:15
【问题描述】:

我正在将 Tomcat7/Mysql 应用程序移植到 AWS。我看到,每当我发送多个查询语句时,都会收到如下错误:

com.mysql.jdbc.exceptions.jdbc4.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 ....

我只在多个查询中检测到它(例如,多个相关的删除,例如“从 xxx 删除;从 xxx 删除”)。单个查询似乎可以正常工作。

我正在使用此代码进行连接。

Class.forName("com.mysql.jdbc.Driver");
String jdbcUrl = "jdbc:mysql://" + hostname + ":" + port + "/" + dbName + "?user=" + userName + "&password=" + password + "&autoReconnect=true&allowMultiQueries=true";
Connection con = DriverManager.getConnection(jdbcUrl);

要运行查询,我有以下代码:

Statement st = conn.createStatement();
res = st.executeQuery(query);
conn.commit();

我已经设置了allowMultiQueries=true,但它不能正常工作。我做错了什么?

是否支持多查询?

【问题讨论】:

  • 为什么对某些参数使用 & 而 &给别人?
  • 继承自之前的代码。这样就解决了。
  • 请确保您了解启用多查询时 SQL 注入漏洞的危险性呈指数增长。由于某些非常令人信服的原因,它默认处于关闭状态。

标签: java mysql amazon-web-services tomcat


【解决方案1】:

正如@jarmod 所指出的,问题出在 url 和分隔符上。我应该使用 & 而不是 &

&autoReconnect=true&allowMultiQueries=true

【讨论】:

    猜你喜欢
    • 2011-08-18
    • 1970-01-01
    • 2016-08-05
    • 2015-09-01
    • 2012-02-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多