JavaScript中的SQL语句,其变量包含撇号

神奇新手

我在Mirth Connect中有一个工作代码(用于解析和调度HL7数据),该代码通过jdbc将数据插入数据库中。

Javascript用于生成适当的SQL语句。

一切工作正常,除非变量中带有特殊字符(如撇号)。

引发“查询语法错误”

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

例如:如果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();

但是我收到“无效的参数绑定”错误。知道我做错了什么吗?谢谢。

[解决了]

语法代码错误。一切正常!谢谢

Moilejter

您应该使用PreparedStatement,将查询写为

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

然后使用该setString()方法将值设置为准备好的语句。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章