var mysql = require('mysql');
var connection = mysql.createConnection(
{
host: 'localhost',
user: 'root',
password: 'root',
port: 3306,
database: 'covid19'
});
connection.connect();
var sql = `select * from all_information`;
connection.query(sql,(err, result) => {
if(err){
console.error('error',err)
return;
}
a = result[0];
})
connection.end()
console.log(a)
打印a发现是defind,如何才能把result的值赋值给a并打印出来啊。
你先改成这样验证一下
var mysql = require('mysql');
var connection = mysql.createConnection(
{
host: 'localhost',
user: 'root',
password: 'root',
port: 3306,
database: 'covid19'
});
connection.connect();
var sql = `SELECT 1 + 1 AS solution`;
connection.query(sql,(err, result) => {
if(err){
console.error('error',err)
return;
}
a = result[0];
console.log(a)
})
connection.end()
控制台打印error了吗?打印了的话就是出错了,下面的赋值语句执行不了
按照逻辑,console.log(a)应该放在a = result[0];之后,如果要按现在的结构,那么应该在外边定义一个var a;
这里的connection.query是异步操作,所以会先执行你最后的 console.log(a),所以a是未定义会报错或者undefined