다중 쿼리를 사용할 때




MySQL 모듈을 사용할때 connection은 비동기적으로 발생하기 때문에

여러번의 connection 호출을 통해 클라이언트에게 데이터를 전달해 줄수 없다.

connection은 한번만 호출되어 res.json 등을 통해 클라이언트에게 데이터를 전달해주는데

때문에, 이와같은 상황에서는 다중 쿼리를 사용해야한다.




1
2
3
4
5
6
7
8
9
var connection = mysql.createConnection({
  host: loginData.host,
  port: 3306,
  user: loginData.user,
  password: loginData.password,
  database: 'example',
  multipleStatements: true
})
connection.connect();
cs


다중 쿼리에서 가장 중요한것은 초기 설정이다.

createConnection에서는 데이터베이스를 사용하기 위한 초기 설정들을 객체로써 입력받는데

이때 multipleStatements를 ture로 해주어야 다중 쿼리를 사용할 수 있다.




1
2
3
4
5
6
7
var query = 'select `email`,`id`,`img` from user where id="ma";' +
      'select score from scoreboard where uid="ma" ORDER BY num DESC limit 5;' +
      'select count(*) from scoreboard where score=125;';
 
  connection.query(query, function(err,rows){
    ...
  }
cs


이후에 다음과 같이 다중 쿼리를 작성한 후

connection.query에 인자로 전달하면 rows에서 배열로 결과 값을 받을수 있다.

저작자 표시
신고

+ Recent posts

티스토리 툴바