如何连接到数据库并从nodejs中的多个表中获取数据?
How to connect to a database and get data from multiple tables in nodejs?
我创建了一个到数据库的连接,其中许多 table 与主题相关(例如:- 主题 1、主题 2、主题 3 ...)。
每个主题 table 都有两列,它们是 'IndexNo, Result'。我想获得与同一索引号相关的结果。从每个 table(一个学生获得多个科目的成绩)并将其推入数组。怎么做?
这是我的代码,returns 有很多错误。
const mysql = require('mysql');
var connect = mysql.createConnection({
host:'localhost',
user:'root',
password:'',
database:'results_center'
});
var studentid = 1234;
var results = [];
var i =0;
for(i=1;i++;i<8){
var newResult;
connect.query("select result from subject"+i+" WHERE Index_No = " + studentid,(err,result)=>{
newResult = result;
});
results[i] = result;
}
connect.end()
console.log(results);
将回调转换为 promise 并使用 Promise.all 获取所有结果。
const util = require('util');
const query = util.promisify(connect.query);
var i = 0;
var promises = [];
for(i=1;i++;i<8){
promises.push(query("select result from subject"+i+" WHERE Index_No = " + studentid));
}
Promise.all(promises).then(results => {
connect.end()
console.log(results);
})
var mysql = require('mysql');
var con = mysql.createConnection({
host: 'localhost',
user: 'root',
password: '',
database: 'results_center'
});
con.connect(function(err) {
if (err) throw err;
console.log("connected to mysql");
var subjectResults = [];
var studentid = 1234;
var sql = '';
var i = 0;
for (i = 1; i++; i < 8) {
sql = "select result from subject" + i + " WHERE Index_No = " + studentid;
con.query(sql, function(err, results, fields) {
subjectResults.push(results);
});
}
});
我创建了一个到数据库的连接,其中许多 table 与主题相关(例如:- 主题 1、主题 2、主题 3 ...)。
每个主题 table 都有两列,它们是 'IndexNo, Result'。我想获得与同一索引号相关的结果。从每个 table(一个学生获得多个科目的成绩)并将其推入数组。怎么做?
这是我的代码,returns 有很多错误。
const mysql = require('mysql');
var connect = mysql.createConnection({
host:'localhost',
user:'root',
password:'',
database:'results_center'
});
var studentid = 1234;
var results = [];
var i =0;
for(i=1;i++;i<8){
var newResult;
connect.query("select result from subject"+i+" WHERE Index_No = " + studentid,(err,result)=>{
newResult = result;
});
results[i] = result;
}
connect.end()
console.log(results);
将回调转换为 promise 并使用 Promise.all 获取所有结果。
const util = require('util');
const query = util.promisify(connect.query);
var i = 0;
var promises = [];
for(i=1;i++;i<8){
promises.push(query("select result from subject"+i+" WHERE Index_No = " + studentid));
}
Promise.all(promises).then(results => {
connect.end()
console.log(results);
})
var mysql = require('mysql');
var con = mysql.createConnection({
host: 'localhost',
user: 'root',
password: '',
database: 'results_center'
});
con.connect(function(err) {
if (err) throw err;
console.log("connected to mysql");
var subjectResults = [];
var studentid = 1234;
var sql = '';
var i = 0;
for (i = 1; i++; i < 8) {
sql = "select result from subject" + i + " WHERE Index_No = " + studentid;
con.query(sql, function(err, results, fields) {
subjectResults.push(results);
});
}
});