我试图在我的网站上进行常规查询,我一直在用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);
});
我不明白为什么会这样,但我也不想这样,我觉得这样做是不对的,再说,这样做有什么不便吗?
1条答案
按热度按时间fumotvh31#
一个朋友刚刚告诉我为什么在同一个mysql指南中,我们必须使用双字符作为标记。
使用
??
标识符和?
对于值如文档中所述,这将是一个示例
查询:
"SELECT * FROM ?? WHERE ?? = ?"
我希望我的无知和我自己的React能帮助将来的人呵呵。