首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Mysqljs中转义值

在Mysqljs中转义值
EN

Stack Overflow用户
提问于 2018-02-27 22:12:02
回答 1查看 48关注 0票数 0

https://github.com/mysqljs/mysql#introduction

mysqljs与转义值非常不一致,或者我不理解文档。

错误:

代码语言:javascript
复制
this.table = 'elections';
mysql.query('SELECT * FROM ? where name = ?', [this.table, this.votesTable]

您的SQL语法有错误;检查与您的MySQL服务器版本对应的手册中是否有正确的语法错误:“SELECT* FROM \\FROM\‘其中name =\’prim1000\‘”

,但这是可行的:

代码语言:javascript
复制
`mysql.query('UPDATE elections SET updated_at = ? WHERE name = ?', [this.getTimeStamp(), this.votesTable])

但是如果我删除“选举”在上面的查询中并加上"?“相反,它将引发一个错误。所以下面的话就行不通了。

代码语言:javascript
复制
mysql.query('UPDATE ? SET updated_at = ? WHERE name = ?', [this.table, this.getTimeStamp(), this.votesTable])
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-02-27 22:25:20

参考链接到的文档页,在“转义查询标识符”一节中,您应该能够这样做:

代码语言:javascript
复制
mysql.query('SELECT * FROM ?? where name = ?', [this.table, this.votesTable]

大多数SQL框架不允许参数用于除单个值之外的任何内容。例如,非表标识符、列标识符、值列表或SQL关键字。mysqljs库不常见,因为它支持引用标识符和键/值对。

关于你的评论:

??占位符用于标识符。标识符的引用必须与值不同。在MySQL中,字符串值的引号与'string'相似,但标识符以反勾引号引用。

代码语言:javascript
复制
SELECT * FROM `mytable` where name = 'myname'

mysqljs类使用??作为标识符的特殊占位符,因此您可以告诉类它必须用反勾引号引用。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49018805

复制
相关文章

相似问题

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