Я пишу короткий исходный код, и он работает хорошо. Но я хочу предотвратить внедрение SQL. Потому что этот код не может предотвратить SQL-инъекцию.
Это мой оригинальный код
router.get(`/sitemap/:page`, function(req, res, next) {
let pageNumber = String(req.params.page) + "00";
db.query(
`SELECT * FROM user order by displayId*1 LIMIT ${pageNumber}, 100`,
function(error, data) {
if (error) {
throw error;
}
// console.log(data);
res.render("sitemap", {
dataarray: data,
pageNumber: pageNumber
});
}
);
});
И он работает хорошо, но не может предотвратить SQL-инъекцию, поэтому я попробовал этот метод, но у него есть ошибка из-за символа '.
Error: ER_PARSE_ERROR: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '?, 100' at line 1
[Попробовал другой метод]
router.get(`/sitemap/:page`, function(req, res, next) {
let pageNumber = String(req.params.page) + "00";
db.query(
`SELECT * FROM user order by displayId*1 LIMIT ?, 100`,
[pageNumber], // I FIX THIS PART!!!!
function(error, data) {
if (error) {
throw error;
}
// console.log(data);
res.render("sitemap", {
dataarray: data,
pageNumber: pageNumber
});
}
);
});
Как я могу решить эту проблему. Я думаю, что это должна быть строка, поэтому я попытался String(pageNumber)
Но все еще не работает.