[英]SQL statements in javascript with variables that contains an apostrophe
我在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();
但是我收到“無效的參數綁定”錯誤。 知道我做錯了什么嗎? 謝謝。
[解決了]
語法代碼錯誤。 一切正常! 謝謝
您應該使用PreparedStatement,將查詢寫為
INSERT INTO Table (Column1,Column2) VALUES (?,?)
然后使用setString()
方法將值設置為准備好的語句。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.