Escape запятая в MySql Заявление JAVA - PullRequest
1 голос
/ 22 марта 2020

Я не использовал MySql уже некоторое время. Я вставляю некоторые данные в мою таблицу. Я пытаюсь вставить разделенную запятыми строку в качестве значения для моего столбца TRAITS Пример:

"Cuddly, Furry, Lazy"

Я бы как и запятые, которые будут вставлены с этими словами, однако, я получаю синтаксическую ошибку: Количество столбцов не соответствует количеству значений в строке 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;
    }

Ответы [ 2 ]

1 голос
/ 22 марта 2020

Используйте PreparedStatement , чтобы избежать 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();
0 голосов
/ 22 марта 2020

Просто удалите кавычки вокруг десятичного значения ЦЕНЫ. Вот ваше решение:

    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;
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...