【发布时间】:2022-02-05 23:31:17
【问题描述】:
我想将 mysql 查询中的检索值存储到一个变量中,以便我可以将该值插入另一个表中。
下面是检索值的查询
connectionSelectPackageId.connect();
let sqlSelectPackageId = "SELECT MAX(packageId) as maxId FROM recipients";
connectionSelectPackageId.query(sqlSelectPackageId, function(err, rows){
if(err) {
throw err;
} else {
for(var i=0; i< rows.length; i++) {
console.log(rows[i].maxId);
};
};
});
connectionSelectPackageId.end();
我知道我正在正确检索该值,因为当我将其输出时,它会打印出正确的数字
console.log(rows[i].maxId);
我希望存储的值能够通过连接结束 (connectionSelectPackageId.end();)
提前致谢
connectionInsert.connect();
// Insert into the recipients the hashtag and information needed to opon the lock
function getDateTime() {
var now = new Date();
var year = now.getFullYear();
var month = now.getMonth()+1;
var day = now.getDate();
var hour = now.getHours();
var minute = now.getMinutes();
var second = now.getSeconds();
if(month.toString().length == 1) {
var month = '0'+month;
}
if(day.toString().length == 1) {
var day = '0'+day;
}
if(hour.toString().length == 1) {
var hour = '0'+hour;
}
if(minute.toString().length == 1) {
var minute = '0'+minute;
}
if(second.toString().length == 1) {
var second = '0'+second;
}
var dateTime = year+'/'+month+'/'+day+' '+hour+':'+minute+':'+second;
return dateTime;
}
var dateTime = getDateTime();
// Add email later on
let sqlInsert = 'INSERT INTO recipients (date, ..., ..., ..., ..., ..., ..., data) VALUES (?, ?, ?, ?, ?, ?, ?, ?)';
connectionInsert.query(sqlInsert, [dateTime, ..., ..., ...,...,..., ..., data], function(err, rows, fields) {
});
connectionInsert.end();
数据是在第一个查询中抓取的值或rows[i].maxId
【问题讨论】:
-
为什么不把它放在一个他的范围足够广泛以满足您的需求的变量中(即全局范围)?!只是 'var data=rows[i].maxId'
-
我试过了,但似乎该变量只在查询范围内有效。
-
我用这个 var data=rows[i].maxId 替换控制台日志,但是当我在查询范围之外执行控制台日志数据时,它说这个变量是未定义的
标签: javascript mysql node.js