[英]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.