我正在尝试执行一条命令,该命令从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"
}
感谢您的帮助!谢谢!
答案 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。模板文字不能防止这种情况。