【发布时间】:2010-02-02 17:05:15
【问题描述】:
在 R 的 DBI 包中,我没有找到使用绑定变量的工具。我确实找到了一份文档(2002 年的原始小插图),其中提到了绑定变量,“也许 DBI 可以在未来的某个时候实现此功能”,但看起来到目前为止还没有完成。
R 中的人用什么来代替?只是将字符串直接连接到 SQL 中?这在安全性和性能方面存在一些明显的问题。
编辑:
以下是占位符如何工作的示例:
query <- "SELECT numlegs FROM animals WHERE color=?"
result <- dbGetQuery(caseinfo, query, bind="green")
这不是一个经过深思熟虑的接口,但想法是您可以使用 bind 的值,并且驱动程序处理转义的细节(如果底层 API 本身不处理绑定变量)调用者必须重新实现它[糟糕]。
【问题讨论】:
-
您能否提供一些示例代码,可以按照您希望的方式运行?您希望绑定变量具有什么行为?
-
你的意思是这样的吗? stackoverflow.com/questions/2182337/…
-
我闻到了一种新的 DBI 的味道,它具有更好的功能。我们都会成为快乐的 beta 测试者,Ken....
-
如果有一个新的 DBI 正在开发中,那就太好了。是否有一个 DBI 的代码存储库,我可以在某个地方破解,而我得到一些圆形 tuits 的机会微乎其微?
-
不,我是在开玩笑。 DBI 回到大卫詹姆斯,他不再在他曾经做过的地方工作。我指导了一名 Google Summer of Code 学生使用 DBI 创建 Postgresql 绑定;该项目现在作为 RPostgreSQL 在 CRAN 上(并且可以与新的维护者一起做,以便在学生离开时进一步扩展)。一个新的 DBI 将是一个值得重写的,或“DBI 2.0”,但也是一项艰巨的任务。你准备好了吗?你似乎是那个痒痒的人所以......