Discord.js中的节点mysql返回空结果/数组

时间:2019-10-13 15:02:51

标签: mysql node.js discord.js

我正在尝试执行一条命令,该命令从ID是我在命令中使用的表的表中获取选定的查询,例如: !db 1 但我有问题。 问题在于结果为空。

我的代码:

const Discord = require('discord.js');
const mysql = require('mysql');

module.exports.run = async (bot, message, args, connection) => {
    const asd = args.slice(1,2).join(' ');

    let querystring = `SELECT * FROM test WHERE id = '${asd}'`

    connection.query(querystring, function (err, results, rows) {
    if (err) throw err;

    console.log(results);
    });

}

module.exports.help = {
    name: "db"
}

感谢您的帮助!谢谢!

1 个答案:

答案 0 :(得分:1)

From the screenshot you posted earlier,您的id列是类型INT。正在搜索该代码,好像该列是VARCHAR

尝试一下:

const id = args.slice(1, 2).join(' ');
if (isNaN(id)) { return; } // if the input isn't a number
connection.query(`SELECT * FROM test WHERE id = ${Number.parseInt(id)}`, (err, res, rows) => {
    if (err) throw new Error(err);
    console.log(res);
});

重要:此代码允许SQL Injection。模板文字不能防止这种情况。