我正在尝试在我的网站上进行一般查询,我一直在我的项目中使用参数处理数据并且没有任何问题,现在如果我按照以下方式使用这些表,它对我不起作用:
在浏览器中:"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 服务器版本对应的手册,了解在“用户”附近使用的正确语法 1
但如果我这样做,它会起作用:
db.get().query('SELECT * FROM '+table ,function(err, rows, fields) {
if (err) throw err;
done(rows);
});
我不明白为什么会这样,但我也不想这样放着,我觉得这样放着也不对,而且这样放着有什么不方便吗?
最佳答案
一个 friend 刚刚告诉我为什么在解释同一个mysql指南中,我们必须使用双字符作为标记。
使用 ??
作为标识符,使用 ?
作为值
如文档中所述,这将是一个示例
查询:“SELECT * FROM ?? WHERE ?? = ?”
希望我的无知和我自己的回答能对以后的人有所帮助呵呵。
关于mysql - nodejs mysql查询标识符 '?'错误,但连接查询工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52978508/