简体   繁体   English

Node.js MySQL更新记录

[英]Node.js MySQL updating records

I am capturing data from an API, putting it in an array ([arr1]) and using node-mysql to query my DB and insert data to it. 我正在从API捕获数据,将其放入数组([arr1])中,并使用node-mysql查询我的数据库并将数据插入其中。

This is working fine when pushing new records, as per the below: 如下所示,在推送新记录时,此方法工作正常

    var arr1 = response.data.map(function(item) {
    return [item.employeeDetails.id, item.employeeDetails.personalDetails.firstName, item.employeeDetails.personalDetails.lastName, item.employeeDetails.personalDetails.emailAddress];
});

var query = connection.query('INSERT IGNORE INTO employees(pk_userId, firstName, lastName, emailAddress) VALUES ?', [arr1],
    function(error, results, fields) {
        if (error) console.log(error);
        else {
            console.log("Imported=");
        }
    });

I am trying to add a second query, to update changed records. 我正在尝试添加第二个查询,以更新更改的记录。 I have been reading tutorials and docs, however am still having issues. 我一直在阅读教程和文档,但是仍然遇到问题。 The following is what I am trying after following instructions online: 以下是按照网上说明进行操作后要尝试的操作:

var query2 = connection.query('UPDATE employees SET ? WHERE ?', [arr1],
    function(err, rows) {
        if (err)
            console.log("Error Updating ", err);
    });

So, I am using the same [arr1] array that I got from the API, however I am a bit lost on how to tell MySQL to look for records to update. 因此,我使用的是从API获得的相同[arr1]数组,但是我对如何告诉MySQL查找要更新的记录有些迷惑。

Any advise or direction would be much appreciated. 任何建议或指示将不胜感激。

You should set placeholders '?' 您应该将占位符设置为“?” with comma seperated syntax. 使用逗号分隔的语法。

var query2 = connection.query('UPDATE employees SET ? WHERE ?', [var1, var2],
    function(err, rows) {
        if (err)
            console.log("Error Updating ", err);
    });

This will put var1 into first '?' 这会将var1放在第一个'?' and var2 into second'?'. 并将var2转换为第二个“?”。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM