2016-08-13 6 views
-1
var records = ""; 
for(var i = 0; i < activity.length; i++) { 
sequelize.query("SELECT * from users WHERE city = '"+city+"'" AND categories LIKE CONCAT('%', activity[i], '%')"", { type: sequelize.QueryTypes.SELECT}) 
    .then(function(logs){ 
     records += logs; 
     matchCount += logs.length; 

    }); 
} 

console.log("--------------------------Priniting matched users-----------------------"); 
console.log(records); 

//INSERT DATA TO SQL 

sequelize.query("INSERT INTO users(name, lastname, email, phone, city, categories, createdAt, updatedAt) VALUES ('"+req.body.first_name+"', '"+req.body.last_name+"', '"+req.body.email+"', '"+req.body.tel+"', '"+req.body.city+"', , '"+JSON.stringify(activity)+"', 'test', 'test')"); 
+0

의 피해자가 될 수 조심 자세히 루프에서'sequelize.query' 호출을보십시오. 구문 강조 표시가 제대로 표시됩니까? 구문 강조가있는 훌륭한 편집기가 도움이되었습니다. 특히 편집자가 오류 자체를 검사하는 경우도 있습니다. –

+0

Typo :' ' "+ city +"' "' – Tibrogargan

+3

줄 번호를 부여 할 것입니다. champ –

답변

0

오류가 선택문에 큰 따옴표가 있습니다. 당신은 문자열 따옴표에 더 많은 관심을 지불해야

var records = ""; 
for (var i = 0; i < activity.length; i++) { 
    sequelize.query("SELECT * from users WHERE city = '" + city + "'AND categories LIKE CONCAT('%', activity[i], '%')", { 
      type: sequelize.QueryTypes.SELECT 
     }).then(
     function(logs) { 
      records += logs; 
      matchCount += logs.length; 
     }); 
} 

console.log("--------------------------Priniting matched users-----------------------"); 
console.log(records); 

//INSERT DATA TO SQL 

sequelize.query("INSERT INTO users(name, lastname, email, phone, city, categories, createdAt, updatedAt) VALUES ('" + req.body.first_name + "', '" + req.body.last_name + "', '" + req.body.email + "', '" + req.body.tel + "', '" + req.body.city + "', , '" + JSON.stringify(activity) + "', 'test', 'test')"); 
1

, 당신은 city의 폐쇄 단순 인용하고 AND categories 부분 사이에 나사.

그것은 다음과 같아야합니다는 SQL 문자열 쿼리에 변수을 연결하는 경우 또한

sequelize.query("SELECT * from users WHERE city = '"+city+"' AND categories LIKE CONCAT('%', activity[i], '%')", { type: sequelize.QueryTypes.SELECT}) 

, 당신이 그들을 소독하지 않는 경우가 찍 SQL injection attack

관련 문제