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

标签 mysql sql node.js function parameters

我正在尝试在我的网站上进行一般查询,我一直在我的项目中使用参数处理数据并且没有任何问题,现在如果我按照以下方式使用这些表,它对我不起作用:

在浏览器中:"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/

相关文章:

javascript - 如何使用 webdriverjs 控制新窗口?

php - 如何设置 PHP 和 MySQL?

mysql - 使用 MySQL 的 Visual Basic 聊天应用程序,如何在刷新时仅下载最后一条消息?

mysql - 如何使用mysql获取用户的顶层分层数据?

sql - 需要对总和和总和的有效查询

sql - SQL的count(*)函数中包含0

java - 在 jpql 查询中创建和填充 pojos 并作为列表获取

mysql - 通过 firstName 和 lastName 列搜索所有相似记录的 SQL 查询

javascript - 将socket.io客户端指向heroku服务

javascript - Node json请求栈