2016-08-13 5 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

私はそれがラインナンバー –

答えて

0

エラーは、wierd引用符を持つselect文にあります。あなたは、文字列の引用符にもっと注意を払わなければならない

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

関連する問題