Node.js 在循环内执行mysql查询
我在mysql中有emp_表的详细信息。我正在尝试根据for循环内的select查询执行更新/插入。 如果选择返回值->我将更新 如果没有,请插入一个值。这是我的示例工作代码。当请求具有重复的名称、电子邮件id和密码时,我发现了一个问题Node.js 在循环内执行mysql查询,node.js,Node.js,我在mysql中有emp_表的详细信息。我正在尝试根据for循环内的select查询执行更新/插入。 如果选择返回值->我将更新 如果没有,请插入一个值。这是我的示例工作代码。当请求具有重复的名称、电子邮件id和密码时,我发现了一个问题 var config = require('./mysql_db'); var connection= config.connection; exports.insert_data = function(req,res){ var json = JSON.str
var config = require('./mysql_db');
var connection= config.connection;
exports.insert_data = function(req,res){
var json = JSON.stringify(req.body);
var json_par = JSON.parse(json);
for( let i = 0; i < json_par.data.length; i++ )
{
sql = "SELECT * FROM emp_details where email_id = ?";
connection.query(sql,[json_par.data[ i ].email_id],function(error,results,filelds){
if(error) throw err;
if(results.length >0)
{
sql = 'UPDATE emp_details SET password = ?, name = ? where email_id = ?';
connection.query(sql, [ json_par.data[ i ].password, json_par.data[ i ].name, json_par.data[ i ].email_id ],function(error,results1,filelds){
if(error) throw err;
});
}
else
{
console.log("insert called");
sql = 'INSERT INTO emp_details VALUES ( ?,?,? )';
connection.query(sql,[ json_par.data[ i ].name, json_par.data[ i ].email_id, json_par.data[ i ].password ],function(error,results1,filelds){
if(error) throw err;
});
}
});
}
res.end("success");
}
For eg:
{
"data" : [
{
"name" : "scott",
"email_id": "scott95",
"password": "scott@123"
},
{
"name" : "scott",
"email_id": "scott95",
"password": "scott@123"
}
]
}
var config=require('./mysql_db');
var connection=config.connection;
exports.insert_data=函数(请求、恢复){
var json=json.stringify(req.body);
var json_par=json.parse(json);
for(设i=0;i0)
{
sql='UPDATE emp_details SET password=?,name=?where email_id=?';
connection.query(sql[json\u par.data[i]。密码,json\u par.data[i]。名称,json\u par.data[i]。电子邮件\u id],函数(错误,结果1,文件id){
如果(错误)抛出错误;
});
}
其他的
{
console.log(“插入调用”);
sql='插入emp_详细信息值(?,?)';
connection.query(sql[json\u par.data[i].name,json\u par.data[i].email\u id,json\u par.data[i].password],函数(error,results1,fileld){
如果(错误)抛出错误;
});
}
});
}
res.end(“成功”);
}
例如:
{
“数据”:[
{
“姓名”:“斯科特”,
“电子邮件id”:“scott95”,
“密码”:scott@123"
},
{
“姓名”:“斯科特”,
“电子邮件id”:“scott95”,
“密码”:scott@123"
}
]
}
在这种情况下,它在两个时间都被插入
这在我的例子中是不需要的。我希望为第一个循环执行insert查询,然后为第二个循环更新查询