nodejs mysql查询标识符“?”错误,但连接查询工作

ivqmmu1c  于 2021-06-18  发布在  Mysql
关注(0)|答案(1)|浏览(307)

我试图在我的网站上进行常规查询,我一直在用params处理项目期间的数据,没有任何问题,现在使用这些表,如果我按以下方式进行操作,它对我不起作用:
在浏览器中: "localhost:3000/user/2/table/users/list " ```
router.get('/user/:userid/table/:Tablename/list', function(){
var table = req.params.Tablename;

db.get().query('SELECT * FROM ? ',[table] ,function(err, rows, fields) {
if (err) throw err;
done(rows);
});

});

这会产生一个错误:
er\u parse\u error:您的sql语法有错误;检查与您的mariadb服务器版本对应的手册,以获取在第1行的“users”附近使用的正确语法
但如果我这样做的话,它是有效的:

db.get().query('SELECT * FROM '+table ,function(err, rows, fields) {
if (err) throw err;
done(rows);
});

我不明白为什么会这样,但我也不想这样,我觉得这样做是不对的,再说,这样做有什么不便吗?
fumotvh3

fumotvh31#

一个朋友刚刚告诉我为什么在同一个mysql指南中,我们必须使用双字符作为标记。
使用 ?? 标识符和 ? 对于值
如文档中所述,这将是一个示例
查询: "SELECT * FROM ?? WHERE ?? = ?" 我希望我的无知和我自己的React能帮助将来的人呵呵。

相关问题