我正在尝试在我的网站上进行常规查询,我一直在项目期间一直使用参数来处理数据,没有任何问题,现在使用这些表对我来说不起作用,如果我按以下方式进行操作:
在浏览器中:"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_PARSE_ERROR:您的SQL语法有错误;检查与您的MariaDB服务器版本相对应的手册以获取正确的语法,以在行的'users'附近使用 1
但是如果我这样做它就可以工作:
db.get().query('SELECT * FROM '+table ,function(err, rows, fields) {
if (err) throw err;
done(rows);
});
我不明白为什么会这样,但是我也不想这样,我觉得那样走是不对的,此外,那样走对他有任何不便吗? >
答案 0 :(得分:0)
一个朋友刚刚分享了我的原因,为什么在相同的mysql指南中,我们必须使用双字符作为标记。
将??
用作标识符,将?
用作值
如文档中所述,这将是一个示例
查询:"SELECT * FROM ?? WHERE ?? = ?"
我希望我的无知和自己的回应会在以后的将来对某人有所帮助。