【问题标题】:Syntax error with mysql database using JDBC使用 JDBC 的 mysql 数据库的语法错误
【发布时间】:2021-04-20 01:48:09
【问题描述】:
PreparedStatement posted = con.prepareStatement(
    "INSERT INTO userdate (description, UUID) VALUES ('"+ desc + "','" + postuuid + "') ON DUPLICATE KEY UPDATE");

这是错误您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以获取在 '' 附近使用的正确语法 这是我的代码,有人知道这可能有问题吗?

【问题讨论】:

  • 不要将值连接到查询字符串中,这会使您的代码容易受到 SQL 注入的攻击。您需要使用参数 (?) 而不是值来正确参数化查询。

标签: java mysql sql jdbc


【解决方案1】:

查看 MySQL 文档以获取有关 DUPLICATE KEY UPDATE https://dev.mysql.com/doc/refman/8.0/en/insert-on-duplicate.html 的参考

关键字“UPDATE”不是语句的绝对结束。您需要指定将要更新的字段/值

【讨论】:

  • 感谢您的帮助。这是我的新代码: PreparedStatement posted = con.prepareStatement("INSERT INTO userdata(description, UUID) VALUES ('"+desc+"', '"+postuuid+"') ON DUPLICATE KEY UPDATE description='"+ desc +" '");
猜你喜欢
  • 1970-01-01
  • 2016-02-08
  • 1970-01-01
  • 2015-12-12
  • 2013-10-31
  • 2019-11-06
  • 1970-01-01
  • 2017-11-29
  • 1970-01-01
相关资源
最近更新 更多