首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在mysql / express中使用变量作为列名?

如何在mysql / express中使用变量作为列名?
EN

Stack Overflow用户
提问于 2018-09-20 23:18:33
回答 4查看 1.4K关注 0票数 2

目前我有这个问题,问题是表名得到一组引号(ad它是一个字符串),这会使服务器崩溃。

代码语言:javascript
复制
const update =  'the name of my column';
const UpdateQuery = `UPDATE scores
    SET ${mysql.escape(update)} = ${mysql.escape(newValue)}
    WHERE score_id = ${mysql.escape(singleScore.score_id)}`;

mysql.escape()对除列名以外的所有内容都工作得很好。

如果我在注入变量后对查询执行console.log,则会得到以下结果:

代码语言:javascript
复制
UPDATE scores
SET 'the name of my column' = 1
WHERE score_id = 1
EN

Stack Overflow用户

发布于 2018-09-20 23:38:18

检查下面的代码。或许能行得通,

代码语言:javascript
复制
con.query(
  'UPDATE scores SET '+update+' = ? Where score_id = ?',
  // Old - [${mysql.escape(newValue)}, ${mysql.escape(singleScore.score_id)}],
  /* Update - */ [newValue,singleScore.score_id],
  (err, result) => {
    if (err) throw err;
    console.log(`Changed ${result.changedRows} row(s)`);
  }
);

根据您的查询,${mysql.escape(update)}包含值中的单引号。

票数 0
EN
查看全部 4 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52428398

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档