【问题标题】:Nodejs-Mysql Query table name as a variableNodejs-Mysql 查询表名作为变量
【发布时间】:2017-07-31 17:38:38
【问题描述】:

如何将表名作为变量传递。基本上我想制作e函数,其中我将使用nodejs将表名作为参数并在mysql数据库中插入对象记录 我的功能会像

exports.insertIntoDb = function(tableName,insertObj) {
 connection.query('INSERT INTO administrator SET ?',insertObj, function(error, result, fields) {
    if(error){
        res.json({
            status:false,
            message:'There is some problem with query'
        })
    }
    else{
        res.json({
            status : true,
            data : result,
            message: 'user registered successfully'
          })    
       }
  });
 }

但我想知道如何在这个查询中传递表名,它是从函数中获取的参数。我在问语法?我正在使用 nodejs-mysql

【问题讨论】:

  • 这在文档中有解释,从here开始,然后继续往下走。
  • @robertklep 我发现这个查询靠近我的解决方案 var userId = 1; var columns = ['用户名','电子邮件']; var query = connection.query('SELECT ?? FROM ?? WHERE id = ?', [columns, 'users', userId], function (error, results, fields) { if (error) throw error; // .. . });但在我的情况下,我正在进行插入查询,并且我想在 sql 查询中发送对象。并且在这个查询中没有如何在查询中放置对象的方法。在此查询中,他将列作为数组插入,但我想将列作为对象和表名发送
  • 在这种情况下,您需要重新表述您的问题,因为您(反复)询问如何将表名传递到查询中,而不是传递对象。
  • @robertklep 请仔细阅读我的问题我提到我想在 sql 插入查询和表名中传递对象作为变量。那么你能指导我并改变我的查询并告诉我如何做到这一点吗?
  • “但我想知道如何在这个查询中传递表名,它是从函数中获取的参数”。这就是你要问的。这也在您的问题标题中。

标签: mysql node.js


【解决方案1】:

试试这个:

exports.insertIntoDb = function(tableName,insertObj) {
  connection.query('INSERT INTO ?? SET ?', [ tableName, insertObj ], ...)
};

在此处记录:https://github.com/mysqljs/mysql#preparing-queries

【讨论】:

【解决方案2】:

在 app.js 中:

app.put('/updateCell', async function(req, res) {
    console.log("REST: PUT /updateCell");
    let orderInfo = req.body;
    let cellValue = orderInfo.cell;
    let CustomerName = orderInfo.CustomerName;
    let ColumnName = orderInfo.columnName;

    connection.query("UPDATE vehicles SET ?? = ? WHERE order_CustomerName = ?", [columnName, cellValue, customerName],
        function(err, result) {
          if (err) throw err;
        });
        res.send();
});

示例:

//cellValue = "Fluffiest hat of them all";
//customerName = "Jenny Hopkins";
//columnName = "description";

因此 SQL 查询将与以下内容相同:

UPDATE order SET description = "fluffiest hat of them all" WHERE order_CustomerName = "Jenny Hopkins";

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-07-24
    • 2017-09-28
    • 1970-01-01
    • 1970-01-01
    • 2016-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多