기본 하드코딩
var clubSn = req.params.clubSn;
var sql = 'SELECT * FROM CLUB WHERE CLUB_SN = "' + clubSn + '";';
dbconn.query(sql, function(err, results, field){
....
});
파라미터 1개일 때 매핑
var clubSn = req.params.clubSn;
var sql = 'SELECT * FROM CLUB WHERE CLUB_SN = ?';
dbconn.query(sql, clubSn, function(err, results, field){
...
});
파라미터 2개이상일 때
var clubSn = req.params.clubSn;
var clubNm = req.params.clubNm;
var sql = 'SELECT * FROM CLUB WHERE CLUB_SN = ? AND CLUB_NM = ?';
dbconn.query(sql, [clubSn, clubNm], function(err, results, field){
...
});
var insertValArr = ['a','b','c','d'];
var sql = "INSERT INTO CLUB_MBER (CLUB_SN, MBER_NM, MBER_SN, MNGR_YN) VALUES ?";
dbconn.query(sql, insertValArr, function(err, result){
...
});
Insert SQL시, 입력할 파라미터가 매우 많을 경우
파라미터를 객체형식으로 만들어서 넘기면 된다. 단, key값은 무조건 db에 있는 필드명과 똑같이 만들어야 한다.
var clubMberObj = {
CLUB_SN : clubSn,
MBER_NM : mberNm,
MBER_SN : mberSn,
MNGR_YN : 'Y',
PROFILE_IMAGE : profileImage
};
//클럽회원 저장
var sql = "INSERT INTO CLUB_MBER SET ? "
dbconn.query(sql, clubMberObj, function(err, result){
...
});
다중쿼리 처리 방법
var sql1 = 'SELECT CLUB_NM FROM CLUB; '; // 클럽목록
var sql2 = 'SELECT MBER_NM FROM CLUB_MBER; '; // 클럽회원
dbconn.query(sql1 + sql2, function(err, results, field){
var sql1_result = results[0]; //sql1 의 결과값
var sql2_result = results[1]; //sql2 의 결과값
...
});
//대회생성
insert : function(req, res){
var cnfrncInfo = req.body.cnfrncInfo; //대회정보
var partcptMberArr = req.body.partcptMberArr; //대회참가자정보
var cnfrncGgArr = req.body.cnfrncGgArr; //대회경기정보
var sql1 = 'INSERT INTO CNFRNC SET ? ;';
var sql1s = mysql.format(sql1, cnfrncInfo);
var sql2 = 'INSERT INTO CNFRNC_PARTCPT_MBER SET ?;';
var sql2s = "";
partcptMberArr.forEach(function(item){
sql2s += mysql.format(sql2, item);
});
var sql3 = 'INSERT INTO CNFRNC_GG SET ?;';
var sql3s = "";
cnfrncGgArr.forEach(function(item){
sql3s += mysql.format(sql3, item);
});
dbconn.query(sql1s + sql2s + sql3s, function(err, result){
if(err){
console.error(err);
res.send({resultCd:'E', msg: "예기치 않은 오류가 발생하여 대회 생성에 실패하였습니다."});
throw err;
}
if(result[0].affectedRows > 0){
res.send({resultCd:'S', msg:'정상적으로 대회가 만들어졌습니다.'});
}else{
console.error(result.message);
res.send({resultCd:'E', msg: "예기치 않은 오류가 발생하여 대회 생성에 실패하였습니다. " + result.message});
}
});
}
다중쿼리 추가 참고 사이트
https://github.com/mysqljs/mysql
반응형
'Database > MySQL' 카테고리의 다른 글
[MySQL] 데이터 한꺼번에 변경하기 (0) | 2022.05.10 |
---|---|
[MySQL] Inner Join을 사용한 데이터 추출 (0) | 2022.03.23 |
[MySQL] FOREIGN KEY가 Drop(삭제)가 안될때, 해결방법 (0) | 2022.02.20 |
[MySQL] Database Table CRUD 시도해보기 (0) | 2022.02.17 |
[MySQL] MySQL 설치 (0) | 2022.02.17 |