Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 在循环内执行mysql查询_Node.js - Fatal编程技术网

Node.js 在循环内执行mysql查询

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

我在mysql中有emp_表的详细信息。我正在尝试根据for循环内的select查询执行更新/插入。 如果选择返回值->我将更新 如果没有,请插入一个值。这是我的示例工作代码。当请求具有重复的名称、电子邮件id和密码时,我发现了一个问题

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查询,然后为第二个循环更新查询