2017-11-20 17 views
0

Java 스크립트 변수를 사용하여 일부 값을 가져 왔습니다. 그리고 Bizmapper에서 DB (MySQL의) (Bizlink는)으로 그 값을 삽입하려하지만, 몇 가지 오류가 발생합니다 :MySQL 삽입 문 안에 Java 스크립트 변수 값을 포함하는 방법

MySQL_DB.open(true); 

// Get necessory data // 
var erp_PONum  = mek.targetDocument.getRootSegment("ST").getSegment("BEG").getEDIElement("BEG03").getData(); 
var erp_OriginSystem = mek.targetDocument.getRootSegment("ST").getSegment("BEG").getRecord("WFG_BEG").getField("WF_OriginSystem").getData(); 
var erp_SiteCode  = mek.targetDocument.getRootSegment("ST").getSegment("BEG").getRecord("WFG_BEG").getField("WF_SiteCode").getData(); 
var erp_BuyerName = mek.targetDocument.getRootSegment("ST").getSegment("BEG").getRecord("WFG_BEG").getField("WF_BuyerName").getData(); 
var erp_BuyerEmail = mek.targetDocument.getRootSegment("ST").getSegment("BEG").getRecord("WFG_BEG").getField("WF_BuyerEmail").getData(); 
var erp_SupplierName = mek.targetDocument.getRootSegment("ST").getSegment("BEG").getRecord("WFG_BEG").getField("WF_SupplierName").getData(); 

//Inser into Table// 

MySQL_DB.command("insert into po_ref_table Values ("+ erp_PONum +", "+ erp_OriginSystem +", "+ erp_SiteCode +","+ erp_BuyerName +","+ erp_BuyerEmail +","+ erp_SupplierName +")"); 

//Close DB// 

MySQL_DB.close(); 

어떻게 할 수 있습니다

[Error is --> " Failed to execute SQL insert into po_ref_table values (4200913801AA, DEAM, 067,Joseph Keefe,[email protected],W.W. Grainger, Inc.) failed to execute. Reason: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Keefe,[email protected],W.W. Grainger, Inc.)' at line 1."]. 

내가 하나가 아래에 언급 된이 방법을 시도를 이거 해결해?

답변

0

SQL 주입 취약점에주의하십시오! 쿼리에서 매개 변수 소지자를 사용하십시오.

var args = [erp_PONum, erp_OriginSystem, erp_SiteCode, erp_BuyerName, erp_BuyerEmail, erp_SupplierName]; 
MySQL_DB.command("insert into po_ref_table Values (?,?,?,?,?,?)",[args]);