개발을 하다보니 쿼리문에서 인젝션에 대한 문제들이 나오기 시작했습니다.
그래서 쿼리문에 ? 물음표를 넣어두고 query() 함수의 두번째 파라미터 자리에 변수를 넣어줍니다.
이런식으로 사용할 수 있겠죠?
그렇다면 2개 이상은 어떻게 해야될까요?
[] 괄호를 사용하여 2번째 파라미터를 묶어주면 됩니다.
이런식으로 묶어주면 됩니다.
다른 쿼리들도 이렇게 많이 사용하는데 insert문이 조금 특이합니다.
insert into values가 보통입니다만
var sql = 'INSERT INTO table (name, email, age) VALUES(?, ?, ?)';
var params = ['hyun','94onad@naver.com','26']
connection.query(sql, params, function(err, rows, fields){
보통은 이렇게 많이들 쓰실텐데 INSERT문은 SET을 사용하기도 합니다. SET을 사용하게 되면 컬럼 전체를 넣어야합니다.
var users = {
userid: req.body.userid,
pwd: req.body.pwd,
name: req.body.name,
email: req.body.email,
phone: req.body.phone,
created: today,
modified: today,
};
connection.query("INSERT INTO user SET ?", users, function (error, results, fields)
직접 쿼리문 안에 넣어주는 분들도 계시는데 이럴경우 escape() 함수를 사용하는 방법도 있습니다.
var sql = 'SELECT * FROM CLUB WHERE CLUB_SN = ' + mysql.escape(clubSn) + '; ';
'IT > Node.js' 카테고리의 다른 글
[Node.js] 랜덤 문자열을 이용하여 임시 비밀번호/세션키/인증번호 생성 응용하기 (0) | 2021.01.15 |
---|---|
[Node.js] NPM forever 사용법 - 서버 백그라운드 실행 (0) | 2020.10.22 |
[Node.js]Node.js + Redis 연동 (0) | 2020.09.21 |
[Node.js] Naver Cloud Platform을 이용한 API 사용하여 SMS 보내기 (1) | 2020.09.11 |
[Node.js] nodemon - 파일 변경 감지 시 자동 재시작 (0) | 2020.08.26 |