【问题标题】:Error: 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 ** [closed]错误:您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以获得在 ** 附近使用的正确语法 [关闭]
【发布时间】:2023-04-05 19:50:01
【问题描述】:

我在 Java eclipse 中有一条错误消息。我在 MySql 中有一个数据库,它的列有String user_nameint id_timeint id_deskint user_password。我想用 using 插入数据

public void reserve(String user_name, int id_time, int id_desk, int user_password){

    try{
        String reserveSql = "INSERT INTO reservation"
                +"VALUES ('" + user_name + "," + id_time + "," + id_desk + "," + user_password + "');";
        stmt.executeUpdate(reserveSql);
    }catch (SQLException ex) {
        System.out.println("Error: " + ex.getMessage());
    }
} 

方法。

在数据库中,user_name 是 varchar(45),id_time 是 int(3),id_desk 是 int(3),user_password 是 int(4)

但是在我写的主要方法中

object.reserve("irem",002,111,1111);

它给了我错误信息

错误:您的 SQL 语法有错误;检查手册 对应于您的 MySQL 服务器版本,以便使用正确的语法 在第 1 行的 ''irem,2,111,1111')' 附近

我该如何解决?感谢您的帮助

【问题讨论】:

  • 学习使用参数化查询。或者在某些时候你会遭受 SQL 注入的影响。
  • 除非你希望它们是八进制,否则不要写带有前导零的整数。

标签: java mysql sql insert


【解决方案1】:

您忘记了字符串周围的空格和“'”,但您必须像 xQbert 所说的那样“学习使用参数化查询”...

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2011-08-07
  • 1970-01-01
  • 2012-05-02
  • 2013-07-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多