2013-07-25 2 views
2

나는이 문제를 한동안 사용해 왔으며 좋은 정보를 찾을 수없는 것 같습니다.MYSQL 쿼리에서 Javascript 변수 사용하기

가 나는 EC2 인스턴스에 Node.js를 서버를 실행하고 다음 코드와 MYSQL 테이블에 행을 추가 할 필요 해요 :

client.query('SELECT curattend FROM table1 WHERE ind=1', function(err,result){ 
     att = result[0].curattend; 
     console.log(att); 

     client.query("INSERT INTO archive (attendance) VALUES ('att')", function(err,info){ 
       }); 

     console.log(att); 

     }); 

내가 전에 'AT & T'를 인쇄 직후에 확실하게 ... att는 '233'과 같습니다. 그러나 '0'숫자는 MYSQL 테이블에 계속 업로드됩니다.

누구든지 내가이 문제를 해결할 수있는 자료를 알려줄 수 있습니까?

답변

3

user2246674의 건설적인 의견을 바탕으로, 나는 또한 뭔가를 배웠습니다. 오히려 이것보다

:

client.query("INSERT INTO archive (attendance) VALUES (" + att + ")" 

대신을 시도해보십시오

var att = result[0].curattend; 
client.query("INSERT INTO archive (attendance) VALUES (?);", [att], function(err,info){ }); 
// This creates the insert statement INSERT INTO archive (attendance) VALUES (att); 
+0

네를, 그것을 해결하는 ... 감사합니다! – pj409

+0

아, 그래, 새로운 시대 * SQL 주입 * (또는 * 우연한 파손 *) - 확실하게 * 더 좋은 방법이 있어야합니까? 왜냐하면, 내가 원하는 마지막 것은이 쓰레기가 더 많기 때문입니다. – user2246674

+0

오, 그래. 이것은 수 년전에 해결되었으며 감사하게도 [node.js에서 해결 된 것으로 보입니다] (http://stackoverflow.com/questions/15778572/preventing-sql-injection-in-node-js). (이스케이프 대 적절한 준비된 명령문을 사용할 수도 있지만 문제는 다음과 같습니다. SQL에 데이터를 전달하는 것에 대해 걱정할 필요가 없습니다!) – user2246674

0

당신의 코드가 있어야한다 :

('"+att+"')" 
+0

답변을 더 잘 설명 할 수 있습니까? – Sergio

관련 문제