
sql = `INSERT INTO orderedBook (order_id, book_id, quantity) VALUES ?`;
values = [];
items.forEach((item) => {
values.push([order_id, item.book_id, item.quantity]);
console.log(values);
});
conn.query(sql, [values], (err, results) => {
if (err) {
console.error(err);
return res.status(StatusCodes.BAD_GATEWAY).json({ error: '데이터베이스 오류입니다.' });
}
return res.status(StatusCodes.OK).json(results);
});
위 코드는 mysql라이브러리 문법이고, Error 없이 실행하게 된다면
JSON형으로 results가 반환되는데 , 그 반환되는 값이 맨 위 사진에 보듯 결과가 반환된다.
이때 7가지의 반환데이터들에 대해서 알아보자.
fieldCount: 0SELECT 쿼리를 실행할 때 반환된 컬럼 수를 나타냅니다.INSERT, UPDATE, DELETE 쿼리에서는 컬럼을 반환하지 않으므로 항상 *0입니다.affectedRows: 1insertId: 5AUTO_INCREMENT 필드에 의해 자동으로 생성된 ID 값입니다.AUTO_INCREMENT 필드가 없다면, *0이 반환됩니다.INSERT INTO users (name) VALUES ('John')를 실행했다면, 추가된 레코드의 ID를 반환합니다.info: ""Records: 1 Duplicates: 0 Warnings: 0 등의 값이 반환될 수 있습니다.serverStatus: 22는 MySQL 서버가 여전히 활성 상태임을 의미합니다.warningStatus: 0changedRows: 00입니다.{
"fieldCount": 0, // 반환된 컬럼 수 (INSERT 쿼리이므로 0)
"affectedRows": 1, // 영향을 받은 행의 개수 (삽입된 행 1개)
"insertId": 5, // 새로 삽입된 행의 AUTO_INCREMENT ID
"info": "", // 추가 정보 (현재는 비어 있음)
"serverStatus": 2, // MySQL 서버 상태 (활성 상태)
"warningStatus": 0, // 경고 개수 (없음)
"changedRows": 0 // 실제 변경된 행의 개수 (INSERT이므로 0)
}
이 정보는 주로 데이터베이스와 상호작용하면서 쿼리가 제대로 실행되었는지 확인하거나 디버깅하는 데 유용합니다.