【问题标题】:Node.js MySQL updating recordsNode.js MySQL 更新记录
【发布时间】:2017-04-06 23:00:41
【问题描述】:

我正在从 API 捕获数据,将其放入数组 ([arr1]) 并使用 node-mysql 查询我的数据库并将数据插入其中。

在推送新记录时,这工作正常,如下所示:

    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=");
        }
    });

我正在尝试添加第二个查询,以更新更改的记录。我一直在阅读教程和文档,但是仍然遇到问题。以下是我按照在线说明尝试的方法:

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

所以,我使用的是从 API 获得的相同 [arr1] 数组,但是我对如何告诉 MySQL 查找要更新的记录有点迷茫。

任何建议或指导将不胜感激。

【问题讨论】:

    标签: javascript mysql sql node.js database


    【解决方案1】:

    你应该设置占位符'?'用逗号分隔的语法。

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

    这会将 var1 放入第一个 '?'并将 var2 放入第二个'?'。

    【讨论】:

    • [arg1] 已经用逗​​号分隔。它在上面被定义为一个变量。
    猜你喜欢
    • 1970-01-01
    • 2012-11-22
    • 2015-04-10
    • 2013-07-18
    • 2012-05-10
    • 2015-06-12
    • 1970-01-01
    • 1970-01-01
    • 2013-03-08
    相关资源
    最近更新 更多