使用node.js和mysql模块,我尝试从一个表中选择数据,操纵该数据,然后将操纵数据插入到数据库中的另一个表中。
var mysql = require('mysql');
var connection = mysql.createConnection({
host: 'localhost',
user: 'username',
password: 'pass',
database: 'db',
});
var q = 'SELECT * FROM table1';
var data_wanted = [];
connection.query(q, function(err, result) {
for(var i = 0; i < 100; i++) { //let's say there are 100 rows in table1
var manipulated_data = result + 1;
data_wanted.push(manipulated_data);
}
});
理想情况下,我会在需要的数据中取值并批量插入它。比如:
var q2 = 'INSERT into table2 (number) VALUES ?';
connection.query(q2, [data_wanted], function(err, result) {
//bulk inserts data_wanted[]
});
但是,所需的数据不从第一个查询获取数据。
console.log(data_wanted) //outputs []; still empty, even after 1st query
我认为这是一个范围问题。但我不知道如何解决这个问题。我将非常感谢你的帮助。
3条答案
按热度按时间nfzehxib1#
主要原因是您的代码没有连接到数据库。在查询sql之前必须先连接数据库。你可以这样说。
0wi1tuuw2#
可以使用一个查询全部插入。这是一个例子:
表用户:
表用户\u日志:
此链接文档:https://dev.mysql.com/doc/refman/8.0/en/insert-select.html
pbpqsu0x3#
应该是这个
我想这只是你丢失的括号。
您正在使用语句,因此您当然需要添加更多代码。
我希望我能帮上忙。