首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >anorm中的转义字符串插值

anorm中的转义字符串插值
EN

Stack Overflow用户
提问于 2016-10-07 23:36:20
回答 1查看 624关注 0票数 0

我想使用anorm 2.5.2将文字'${a}'插入到一个表中,这意味着我想要执行这个纯SQL查询

代码语言:javascript
复制
INSERT INTO `db`.`table` (`a`) VALUES ('${a}');

而不使用任何异常/字符串插值。当我尝试执行以下操作时

代码语言:javascript
复制
SQL("INSERT INTO `db`.`table` (`a`) VALUES ('${a}');").execute()

我得到了一个anorm.Sql$MissingParameter: Missing parameter value异常,因为它试图在${a}上使用anorm插值,但是在作用域中没有可用的值a

如何转义异常/字符串插值$...${...}

Escape a dollar sign in string interpolation似乎不能在这里工作。

EN

回答 1

Stack Overflow用户

发布于 2016-10-08 13:26:21

您可以将${a}设置为参数的值,即

代码语言:javascript
复制
SQL("""INSERT INTO db.table (a) VALUES ({x})""").on("x" -> s"$${a}")

(s"$${a}"是一种编写"${a}"的方法,而不会收到关于可能缺少插值器的警告)。

相同的代码可以写成与

代码语言:javascript
复制
val lit = s"$${a}"
SQL"""INSERT INTO db.table (a) VALUES ($lit)"""

下面的方法可能会起作用,但我不确定:

代码语言:javascript
复制
SQL"INSERT INTO db.table (a) VALUES ('$${a}')"

也有必要问一问这是故意的行为还是bug:当谈论参数化的SQL查询时,在'中有一个参数是没有意义的。

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

https://stackoverflow.com/questions/39921015

复制
相关文章

相似问题

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