Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySql语句JAVA中的转义逗号_Java_Mysql - Fatal编程技术网

MySql语句JAVA中的转义逗号

MySql语句JAVA中的转义逗号,java,mysql,Java,Mysql,我已经有一段时间没有使用MySql了。我在我的表中插入了一些数据。我试图插入一个逗号分隔的字符串作为我的TRAITS列的值 例如: “可爱、毛茸茸、懒惰” 我希望逗号也与这些单词一起插入,但是,我一直遇到一个语法错误:列计数与第1行的值计数不匹配 final int ADMIN_ID = 1; final char comma = ','; try { this.connect_func(); statement = (Stateme

我已经有一段时间没有使用MySql了。我在我的表中插入了一些数据。我试图插入一个逗号分隔的字符串作为我的TRAITS列的值 例如:

“可爱、毛茸茸、懒惰”

我希望逗号也与这些单词一起插入,但是,我一直遇到一个语法错误:列计数与第1行的值计数不匹配

    final int ADMIN_ID = 1;
    final char comma = ',';

    try {

        this.connect_func();

        statement = (Statement) connect.createStatement();

        statement.executeUpdate("INSERT INTO ANIMALS (USER_ID , NAME , SPECIES , DOB , PRICE , TRAITS)" +
                                "VALUES" + "('"+ ADMIN_ID +"', 'Bella', 'Dog', '02/12/2019', '"+950.00+"', 'Sweet" + comma +" Hyper " + comma + " Cuddly "+ comma + " obedient')," + 
                                  "('"+ ADMIN_ID +"', 'Coco', 'Cat', '07/15/2016', '"+650.00+"', 'Lazy " + comma + " Cuddly" + comma + "Stubborn');");


        statement.close();


          return true;

    } catch(Exception e) {

        System.out.println(e);

        statement.close();

        return false;
    }

只需删除价格小数点附近的引号 以下是您的解决方案:

    final int ADMIN_ID = 1;
    final char comma = ',';

    try {

        this.connect_func();

        statement = (Statement) connect.createStatement();

        statement.executeUpdate("INSERT INTO ANIMALS (USER_ID , NAME , SPECIES , DOB , PRICE , TRAITS)" +
                                "VALUES" + "('"+ ADMIN_ID +"', 'Bella', 'Dog', '02/12/2019', "+950.00+", 'Sweet" + comma +" Hyper " + comma + " Cuddly "+ comma + " obedient')," + 
                                  "('"+ ADMIN_ID +"', 'Coco', 'Cat', '07/15/2016', "+650.00+", 'Lazy " + comma + " Cuddly" + comma + "Stubborn');");


        statement.close();


          return true;

    } catch(Exception e) {

        System.out.println(e);

        statement.close();

        return false;
    }

只需删除价格小数点附近的引号 以下是您的解决方案:

    final int ADMIN_ID = 1;
    final char comma = ',';

    try {

        this.connect_func();

        statement = (Statement) connect.createStatement();

        statement.executeUpdate("INSERT INTO ANIMALS (USER_ID , NAME , SPECIES , DOB , PRICE , TRAITS)" +
                                "VALUES" + "('"+ ADMIN_ID +"', 'Bella', 'Dog', '02/12/2019', "+950.00+", 'Sweet" + comma +" Hyper " + comma + " Cuddly "+ comma + " obedient')," + 
                                  "('"+ ADMIN_ID +"', 'Coco', 'Cat', '07/15/2016', "+650.00+", 'Lazy " + comma + " Cuddly" + comma + "Stubborn');");


        statement.close();


          return true;

    } catch(Exception e) {

        System.out.println(e);

        statement.close();

        return false;
    }
用于避免SQL注入。按如下方式操作:

String sql = "INSERT INTO ANIMALS (USER_ID, NAME, SPECIES, DOB, PRICE, TRAITS) VALUES(?, ?, ?, ?, ?, ?)";
PreparedStatement pstmt=con.prepareStatement(sql);
pstmt.setString(1, ADMIN_ID);
pstmt.setString(2, "Bella");
pstmt.setString(3, "Dog");
pstmt.setDate(4, java.sql.Date.valueOf("2019-12-02")); // yyyy-mm-dd
pstmt.setDouble(5, 950.0);
pstmt.setString(6, "Cuddly, Furry, Lazy");
pstmt.executeUpdate();
用于避免SQL注入。按如下方式操作:

String sql = "INSERT INTO ANIMALS (USER_ID, NAME, SPECIES, DOB, PRICE, TRAITS) VALUES(?, ?, ?, ?, ?, ?)";
PreparedStatement pstmt=con.prepareStatement(sql);
pstmt.setString(1, ADMIN_ID);
pstmt.setString(2, "Bella");
pstmt.setString(3, "Dog");
pstmt.setDate(4, java.sql.Date.valueOf("2019-12-02")); // yyyy-mm-dd
pstmt.setDouble(5, 950.0);
pstmt.setString(6, "Cuddly, Furry, Lazy");
pstmt.executeUpdate();

了解防止sql注入的预处理语句。它还将解决您关于comma Escape Enfo5o的问题,这是一个类项目,它甚至不会实时部署。但是谢谢你提供的非常有用的信息。同时删除价格栏中的单引号。它是一个数值。您应该始终使用prepared语句,因为它使数据库的工作更容易使用prepared语句。了解prepared语句以防止sql注入。它还将解决您关于comma Escape Enfo5o的问题,这是一个类项目,它甚至不会实时部署。但是谢谢你提供的非常有用的信息。同时删除价格栏中的单引号。它是一个数值。您应该始终使用准备好的语句,因为它使数据库的工作更容易使用准备好的语句。