![](/img/trans.png)
[英]I can't get in rows data of field when i use multiple query i use mysql, nodejs
[英]Get data from MySQL query for use in nodejs
嘗試查詢我的數據庫,每次我這樣做時,它都會在最后運行所有查詢,而不是在 nodejs 中需要它們時運行。
var mysql = require('mysql');
var con = mysql.createConnection({
host: database.host,
user: database.user,
password: database.password,
database: database.database
});
我從 json 文件中提取的連接數據。
function getSymbol(id){
var s = "";
con.query("SELECT * FROM Symbol WHERE PlayerID = '" + id + "'", function (err, result, fields) {
if (err) throw err;
console.log(result);
if (result.length < 1) {
console.log(result);
s = result[0].Symbol;
}
else {
s = "!";
}
});
console.log(s);
return s;
}
這一切都在程序結束時運行,想知道是否有修復或我是否應該切換到 python(此時認真考慮重寫所有內容)。
問題是你寫的東西在 NIO 下,它不會等待執行下一條語句,除非你要求它。 試試下面的代碼:
async function getSymbol(id){
var s = "";
try {
let result = await con.query("SELECT * FROM Symbol WHERE PlayerID = '" + id + "'")
if (result.length < 1) {
console.log(result);
s = result[0].Symbol;
}
else {
s = "!";
}
}catch(error){
console.log(error);
throw new error;
}
console.log(s);
return s;
}
注意:我使用了 async/await。 你也可以使用承諾
如前所述,該方法不是同步的。 您的結果將在您通過的回調上。
con.query(sql, function (err, result) {
if (err) throw err;
console.log("The Data: " + result);
});
更多信息: https : //www.w3schools.com/nodejs/nodejs_mysql.asp
此外,您需要先連接con.connect( <callback-here> )
。
處理此問題的最佳方法是避免異步/等待語法的回調。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.