Исключение sql рядом с путем к файлу, я не уверен, что не так с этим синтаксисом sql

Привет, друзья-разработчики, Здесь мне понадобится помощь. Я не уверен, что не так с моим синтаксисом SQL, когда я пытаюсь сохранить местоположение файла в своей базе данных. Вот мой код Java, но проблема в собственном синтаксисе SQL.

ArrayList updates = new ArrayList();
sql = "UPDATE " + tableName + " SET " + String.join(",", updates) + " WHERE id = ?;";
System.out.println(sql);

SQLSyntaxErrorException: у вас есть ошибка в синтаксисе sQL, проверьте руководство, соответствующее вашей версии сервера MariaDB, чтобы выбрать правильный синтаксис рядом с ': \ Users \% Username% \ Pictures \ image_2.jpg WHERE id = 1' в строке 1 .

Теперь из этой системной печати выходит мой SQL-запрос:

UPDATE Students SET picture = C:\Users\Student\Pictures\image_2.jpg WHERE id = ?;

Итак, я не понимаю, что не так с синтаксисом запроса?

Вам нужно заключить строку в кавычки. Используйте параметры.

HoneyBadger 11.04.2018 11:36

Будьте осторожны, так как ваш sql-запрос небезопасен. Кто-то может легко внедрить код. Вы должны прочитать о sql-инъекции и подготовленном операторе с параметрами.

JEY 11.04.2018 11:56
0
2
63
1

Ответы 1

В SQL одинарные кавычки будут экранированы двойными одинарными кавычками. '->' '

Итак, измените свой запрос на это:

sql = "UPDATE " + tableName + " SET " + String.join(",", updates).replace("= ","= '") + "' WHERE id = ?;";

Другие вопросы по теме