简体   繁体   中英

Node mysql in Discord.js returns empty result/array

I'm trying to make a command that get the selected queries from a table where the id is the one i use in the command, for example: !db 1 but I'm having a problem. The problem is that the result is empty.

My code:

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"
}

I appreciate any help! Thanks!

From the screenshot you posted earlier , your id column is a type INT . This code is searching as if the column is a VARCHAR .

Try this:

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);
});

Important : This code allows SQL Injection . Template literals do not protect against this.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM