SQL-операторы в JavaScript с переменными, которые содержат апостроф

1

У меня есть рабочий код в Mirth Connect (используется для анализа и отправки данных HL7), который вставляет данные через jdbc в базу данных.

Javascript используется для создания соответствующего оператора SQL.

Все работает нормально, за исключением того, что переменные содержат в себе специальные символы, такие как апостроф "

Он выдает сообщение "В синтаксисе запроса есть ошибка",

var result = dbConn.executeUpdate(
"INSERT INTO Table (Column1, Column2) VALUES " 
+ "('"+ $('variable1')+ "'" 
+ ",'" + $('variable2')+ "'"
);

Например: OK, если variable1 = "max", но НЕ ОК, если variable1 = "m'ax"

Есть ли универсальный способ (или лучший способ) как справиться со всеми запрещенными символами и сделать так, чтобы оператор SQL был в порядке в каждой ситуации?

Заранее благодарим за ваши предложения

[ОБНОВИТЬ]

Спасибо за ваше предложение. Я пробовал этот код:

importPackage(java.sql);
importPackage(java.io);

// database connexion information

new com.filemaker.jdbc.Driver();
var dbConn = DriverManager.getConnection('jdbc:filemaker://localhost/MYDATABASE','login','pass');


var ps = dbConn.prepareStatement("insert into Ehealth_Incoming (ehealthin_document_id_root, ehealthin_document_code_displayName, ehealthin_document_title)  values (?,?,?) ");


// parameter 1

ps.setString(1,$('id_attRoot'));

// parameter 2

ps.setString(2,$('code_attDisplayname'));

// parameter 3

ps.setString(3,$('title'));

// do it

ps.executeUpdate();

// close

ps.close();
dbConn.close();

Но я получаю ошибку "Недопустимые привязки параметров". Любая идея, что я сделал не так? Благодарю.

[Решено]

Произошла ошибка синтаксического кода. Все работает! Спасибо

Теги:
mirth-connect

1 ответ

4
Лучший ответ

Вы должны использовать PreparedStatement, напишите свой запрос как

INSERT INTO Table (Column1,Column2) VALUES (?,?)

затем используйте метод setString() чтобы установить значения в подготовленный оператор.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню